]> git.eshelyaron.com Git - emacs.git/commitdiff
(x_calc_absolute_position): Don't subtract menubar's
authorGerd Moellmann <gerd@gnu.org>
Fri, 1 Dec 2000 22:15:12 +0000 (22:15 +0000)
committerGerd Moellmann <gerd@gnu.org>
Fri, 1 Dec 2000 22:15:12 +0000 (22:15 +0000)
height for YNegative.
(x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
height; also see comment there.

src/ChangeLog
src/xterm.c

index 9c98f9d31f634110383bb40182009aec9d111785..085d44f8ce7b4047141ad634c71bfda2ad714cb8 100644 (file)
@@ -1,5 +1,10 @@
 2000-12-01  Gerd Moellmann  <gerd@gnu.org>
 
+       * xterm.c (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.
+
        * window.c (coordinates_in_window): Handle computations for
        positions on the vertical bar and fringes differently for
        window-system frames.  Consider some pixels near the vertical bar
index 0caf901a8b11bbf94a28bf184d27c8a0dcb6f1f0..603a6f6e57597d872b7f2bfaf50b461ce8d51b5d 100644 (file)
@@ -11761,25 +11761,33 @@ x_calc_absolute_position (f)
                                  - PIXEL_WIDTH (f)
                                  + f->output_data.x->left_pos);
 
-  if (flags & YNegative)
-    {
-      int menubar_height = 0;
+  {
+    int height = PIXEL_HEIGHT (f);
 
-#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);
+#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
-      
-      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);
-    }
 
+  if (flags & YNegative)
+    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.  */