3064 |
static struct scroll_bar *x_window_to_scroll_bar (); |
static struct scroll_bar *x_window_to_scroll_bar (); |
3065 |
static void x_scroll_bar_report_motion (); |
static void x_scroll_bar_report_motion (); |
3066 |
static void x_check_fullscreen P_ ((struct frame *)); |
static void x_check_fullscreen P_ ((struct frame *)); |
|
static void x_check_fullscreen_move P_ ((struct frame *)); |
|
3067 |
static int glyph_rect P_ ((struct frame *f, int, int, RECT *)); |
static int glyph_rect P_ ((struct frame *f, int, int, RECT *)); |
3068 |
|
|
3069 |
|
|
4475 |
f = x_window_to_frame (dpyinfo, msg.msg.hwnd); |
f = x_window_to_frame (dpyinfo, msg.msg.hwnd); |
4476 |
if (f) |
if (f) |
4477 |
{ |
{ |
|
x_check_fullscreen_move(f); |
|
4478 |
if (f->want_fullscreen & FULLSCREEN_WAIT) |
if (f->want_fullscreen & FULLSCREEN_WAIT) |
4479 |
f->want_fullscreen &= ~(FULLSCREEN_WAIT|FULLSCREEN_BOTH); |
f->want_fullscreen &= ~(FULLSCREEN_WAIT|FULLSCREEN_BOTH); |
4480 |
} |
} |
5440 |
x_fullscreen_adjust (f, &width, &height, &ign, &ign); |
x_fullscreen_adjust (f, &width, &height, &ign, &ign); |
5441 |
|
|
5442 |
/* We do not need to move the window, it shall be taken care of |
/* We do not need to move the window, it shall be taken care of |
5443 |
when setting WM manager hints. |
when setting WM manager hints. */ |
|
If the frame is visible already, the position is checked by |
|
|
x_check_fullscreen_move. */ |
|
5444 |
if (FRAME_COLS (f) != width || FRAME_LINES (f) != height) |
if (FRAME_COLS (f) != width || FRAME_LINES (f) != height) |
5445 |
{ |
{ |
5446 |
change_frame_size (f, height, width, 0, 1, 0); |
change_frame_size (f, height, width, 0, 1, 0); |
5453 |
} |
} |
5454 |
} |
} |
5455 |
|
|
|
/* 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; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
5456 |
/* Call this to change the size of frame F's x-window. |
/* Call this to change the size of frame F's x-window. |
5457 |
If CHANGE_GRAVITY is 1, we change to top-left-corner window gravity |
If CHANGE_GRAVITY is 1, we change to top-left-corner window gravity |
5458 |
for this size change and subsequent size changes. |
for this size change and subsequent size changes. |