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)