Mercurial > emacs
diff src/xterm.c @ 52754:d08832a11cfd
* w32term.c (w32_read_socket): Remove call to x_check_fullscreen_move,
that function is removed.
* xterm.c (x_set_offset): Use move_offset_left/top instead of
x/y_pixels_outer_diff.
(x_check_expected_move): Calculate move_offset_left/top.
* xterm.h (struct x_output): New members: move_offset_top/left.
* frame.c (x_set_frame_parameters): x_fullscreen_move removed,
call x_set_offset directly.
* frame.h (enum): FULLSCREEN_MOVE_WAIT removed.
author | Jan Djärv <jan.h.d@swipnet.se> |
---|---|
date | Sun, 05 Oct 2003 13:42:04 +0000 |
parents | 551e8ebadb62 |
children | 19c95cdf2c4a |
line wrap: on
line diff
--- a/src/xterm.c Sun Oct 05 12:15:39 2003 +0000 +++ b/src/xterm.c Sun Oct 05 13:42:04 2003 +0000 @@ -8337,8 +8337,11 @@ if (FRAME_X_DISPLAY_INFO (f)->wm_type == X_WMTYPE_A) { - modified_left += FRAME_X_OUTPUT (f)->x_pixels_outer_diff; - modified_top += FRAME_X_OUTPUT (f)->y_pixels_outer_diff; + /* Some WMs (twm, wmaker at least) has an offset that is smaller + than the WM decorations. So we use the calculated offset instead + of the WM decoration sizes here (x/y_pixels_outer_diff). */ + modified_left += FRAME_X_OUTPUT (f)->move_offset_left; + modified_top += FRAME_X_OUTPUT (f)->move_offset_top; } XMoveWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), @@ -8399,11 +8402,13 @@ { int expect_top = FRAME_X_OUTPUT (f)->expected_top; int expect_left = FRAME_X_OUTPUT (f)->expected_left; - + if (expect_top != f->top_pos || expect_left != f->left_pos) { - if (FRAME_X_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN) - FRAME_X_DISPLAY_INFO (f)->wm_type = X_WMTYPE_A; + FRAME_X_DISPLAY_INFO (f)->wm_type = X_WMTYPE_A; + FRAME_X_OUTPUT (f)->move_offset_left = expect_left - f->left_pos; + FRAME_X_OUTPUT (f)->move_offset_top = expect_top - f->top_pos; + x_set_offset (f, expect_left, expect_top, 1); } else if (FRAME_X_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN)