changeset 34099:06ab9f74a16b

(x_calc_absolute_position): Don't subtract menubar's height for YNegative. (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's height; also see comment there.
author Gerd Moellmann <gerd@gnu.org>
date Fri, 01 Dec 2000 22:14:42 +0000
parents deffe18d562d
children bdab37eba4fc
files src/xterm.c
diffstat 1 files changed, 26 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/src/xterm.c	Fri Dec 01 20:45:45 2000 +0000
+++ b/src/xterm.c	Fri Dec 01 22:14:42 2000 +0000
@@ -11761,25 +11761,33 @@
 				  - PIXEL_WIDTH (f)
 				  + f->output_data.x->left_pos);
 
+  {
+    int height = PIXEL_HEIGHT (f);
+
+#if defined USE_X_TOOLKIT && defined USE_MOTIF
+    /* Something is fishy here.  When using Motif, starting Emacs with
+       `-g -0-0', the frame appears too low by a few pixels.
+
+       This seems to be so because initially, while Emacs is starting,
+       the column widget's height and the frame's pixel height are
+       different.  The column widget's height is the right one.  In
+       later invocations, when Emacs is up, the frame's pixel height
+       is right, though.
+
+       It's not obvious where the initial small difference comes from.
+       2000-12-01, gerd.  */
+    
+    XtVaGetValues (f->output_data.x->column_widget, XtNheight, &height, NULL);
+#endif
+
   if (flags & YNegative)
-    {
-      int menubar_height = 0;
-
-#ifdef USE_X_TOOLKIT
-      if (f->output_data.x->menubar_widget)
-	menubar_height
-	  = (f->output_data.x->menubar_widget->core.height
-	     + f->output_data.x->menubar_widget->core.border_width);
-#endif
-      
-      f->output_data.x->top_pos = (FRAME_X_DISPLAY_INFO (f)->height
-				   - 2 * f->output_data.x->border_width
-				   - win_y
-				   - PIXEL_HEIGHT (f)
-				   - menubar_height
-				   + f->output_data.x->top_pos);
-    }
-
+    f->output_data.x->top_pos = (FRAME_X_DISPLAY_INFO (f)->height
+				 - 2 * f->output_data.x->border_width
+				 - win_y
+				 - height
+				 + f->output_data.x->top_pos);
+  }
+  
   /* The left_pos and top_pos
      are now relative to the top and left screen edges,
      so the flags should correspond.  */