extern Lisp_Object Vcommand_line_args, Vsystem_name;
-extern Lisp_Object Qface, Qmouse_face;
-
#ifndef USE_CRT_DLL
extern int errno;
#endif
BOOL retval;
xassert (font && char2b);
- xassert (font_type != UNKNOWN_FONT);
+
+ /* TODO: This function is currently called through the RIF, and in
+ some cases font_type is UNKNOWN_FONT. We currently allow the
+ cached metrics to be used, which seems to work, but in cases
+ where font_type is UNKNOWN_FONT, we probably haven't encoded
+ char2b appropriately. All callers need checking to see what they
+ are passing. This is most likely to affect variable width fonts
+ outside the Latin-1 range, particularly in languages like Thai
+ that rely on rbearing and lbearing to provide composition. I
+ don't think that is working currently anyway, but we don't seem
+ to have anyone testing such languages on Windows. */
/* Handle the common cases quickly. */
if (!font->bdf && font->per_char == NULL)
else if (!font->bdf && *char2b < 128)
return &font->per_char[*char2b];
+ xassert (font_type != UNKNOWN_FONT);
+
pcm = &font->scratch;
if (font_type == BDF_1D_FONT)
static struct scroll_bar *x_window_to_scroll_bar ();
static void x_scroll_bar_report_motion ();
static void x_check_fullscreen P_ ((struct frame *));
-static void x_check_fullscreen_move P_ ((struct frame *));
static int glyph_rect P_ ((struct frame *f, int, int, RECT *));
f = x_window_to_frame (dpyinfo, msg.msg.hwnd);
if (f)
{
- x_check_fullscreen_move(f);
if (f->want_fullscreen & FULLSCREEN_WAIT)
f->want_fullscreen &= ~(FULLSCREEN_WAIT|FULLSCREEN_BOTH);
}
x_fullscreen_adjust (f, &width, &height, &ign, &ign);
/* We do not need to move the window, it shall be taken care of
- when setting WM manager hints.
- If the frame is visible already, the position is checked by
- x_check_fullscreen_move. */
+ when setting WM manager hints. */
if (FRAME_COLS (f) != width || FRAME_LINES (f) != height)
{
change_frame_size (f, height, width, 0, 1, 0);
}
}
-/* If frame parameters are set after the frame is mapped, we need to move
- the window. This is done in xfns.c.
- Some window managers moves the window to the right position, some
- moves the outer window manager window to the specified position.
- Here we check that we are in the right spot. If not, make a second
- move, assuming we are dealing with the second kind of window manager. */
-static void
-x_check_fullscreen_move (f)
- struct frame *f;
-{
- if (f->want_fullscreen & FULLSCREEN_MOVE_WAIT)
- {
- int expect_top = f->top_pos;
- int expect_left = f->left_pos;
-
- if (f->want_fullscreen & FULLSCREEN_HEIGHT)
- expect_top = 0;
- if (f->want_fullscreen & FULLSCREEN_WIDTH)
- expect_left = 0;
-
- if (expect_top != f->top_pos
- || expect_left != f->left_pos)
- x_set_offset (f, expect_left, expect_top, 1);
-
- /* Just do this once */
- f->want_fullscreen &= ~FULLSCREEN_MOVE_WAIT;
- }
-}
-
-
/* Call this to change the size of frame F's x-window.
If CHANGE_GRAVITY is 1, we change to top-left-corner window gravity
for this size change and subsequent size changes.
staticpro (&last_mouse_motion_frame);
last_mouse_motion_frame = Qnil;
}
+
+/* arch-tag: 5fa70624-ab86-499c-8a85-473958ee4646
+ (do not change this comment) */