summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2000-12-01 22:15:12 +0000
committerGerd Moellmann <gerd@gnu.org>2000-12-01 22:15:12 +0000
commit7708ced012fc22dc9fed596d157f0f5f24b1bbcd (patch)
tree54a344aaa0fdb295964674c0bb54db0bd1f3cf66
parent447e9da0fa09da826a033791d1151040d702064e (diff)
downloademacs-7708ced012fc22dc9fed596d157f0f5f24b1bbcd.tar.gz
emacs-7708ced012fc22dc9fed596d157f0f5f24b1bbcd.tar.bz2
emacs-7708ced012fc22dc9fed596d157f0f5f24b1bbcd.zip
(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.
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xterm.c40
2 files changed, 29 insertions, 16 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 9c98f9d31f6..085d44f8ce7 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -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
diff --git a/src/xterm.c b/src/xterm.c
index 0caf901a8b1..603a6f6e575 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -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. */