changeset 58891:75cac0943699

* xterm.c (x_calc_absolute_position): Don't subtract outer_pixel_diff for left and top calculations. Remove call to x_real_positions. (x_check_expected_move): Do not set change_gravity to 1 when calling x_set_offset.
author Jan Djärv <jan.h.d@swipnet.se>
date Sat, 11 Dec 2004 18:46:43 +0000
parents 0013f65ab5fa
children 2a6a963af889
files src/ChangeLog src/xterm.c
diffstat 2 files changed, 12 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Dec 11 14:51:32 2004 +0000
+++ b/src/ChangeLog	Sat Dec 11 18:46:43 2004 +0000
@@ -1,3 +1,10 @@
+2004-12-11  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* xterm.c (x_calc_absolute_position): Don't subtract outer_pixel_diff
+	for left and top calculations.  Remove call to x_real_positions.
+	(x_check_expected_move): Do not set change_gravity to 1 when calling
+	x_set_offset.
+
 2004-12-08  Richard M. Stallman  <rms@gnu.org>
 
 	* xdisp.c (get_next_display_element): Use `escape-glyph' for
--- a/src/xterm.c	Sat Dec 11 14:51:32 2004 +0000
+++ b/src/xterm.c	Sat Dec 11 18:46:43 2004 +0000
@@ -8147,20 +8147,11 @@
   if (! ((flags & XNegative) || (flags & YNegative)))
     return;
 
-  /* Find the offsets of the outside upper-left corner of
-     the inner window, with respect to the outer window.
-     But do this only if we will need the results.  */
-  if (f->output_data.x->parent_desc != FRAME_X_DISPLAY_INFO (f)->root_window)
-    /* This is to get *_pixels_outer_diff.  */
-    x_real_positions (f, &win_x, &win_y);
-
   /* Treat negative positions as relative to the leftmost bottommost
      position that fits on the screen.  */
   if (flags & XNegative)
     f->left_pos = (FRAME_X_DISPLAY_INFO (f)->width
-                   - 2 * FRAME_X_OUTPUT (f)->x_pixels_outer_diff
-		   - FRAME_PIXEL_WIDTH (f)
-		   + f->left_pos);
+                   - FRAME_PIXEL_WIDTH (f) + f->left_pos);
 
   {
     int height = FRAME_PIXEL_HEIGHT (f);
@@ -8182,15 +8173,7 @@
 #endif
 
   if (flags & YNegative)
-    f->top_pos = (FRAME_X_DISPLAY_INFO (f)->height
-                  - FRAME_X_OUTPUT (f)->y_pixels_outer_diff
-
-                  /* Assume the window manager decorations are the same size on
-                     three sides, i.e. left, right and bottom.  This is to
-                     compensate for the bottom part.  */
-                  - FRAME_X_OUTPUT (f)->x_pixels_outer_diff
-		  - height
-		  + f->top_pos);
+    f->top_pos = (FRAME_X_DISPLAY_INFO (f)->height - height + f->top_pos);
   }
 
   /* The left_pos and top_pos
@@ -8306,7 +8289,9 @@
         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);
+        f->left_pos = expect_left;
+        f->top_pos = expect_top;
+        x_set_offset (f, expect_left, expect_top, 0);
       }
     else if (FRAME_X_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN)
       FRAME_X_DISPLAY_INFO (f)->wm_type = X_WMTYPE_B;