1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-25 23:10:47 -08:00

(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.
This commit is contained in:
Gerd Moellmann 2000-12-01 22:15:12 +00:00
parent 447e9da0fa
commit 7708ced012
2 changed files with 29 additions and 16 deletions

View 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

View 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. */