# HG changeset patch # User Karl Heuer # Date 802902459 0 # Node ID e0abe30899a982e59263043334165490be88c6b0 # Parent 09033eb62d7ef979c29120f82785ce8873afcedc [USE_X_TOOLKIT] (x_window): If using Motif, add some extra to sizes, for consistent behavior. diff -r 09033eb62d7e -r e0abe30899a9 src/xfns.c --- a/src/xfns.c Sun Jun 11 20:27:12 1995 +0000 +++ b/src/xfns.c Sun Jun 11 20:27:39 1995 +0000 @@ -2500,11 +2500,13 @@ char *tem, shell_position[32]; Arg al[2]; int ac = 0; + int extra_borders = 0; int menubar_size = (f->display.x->menubar_widget ? (f->display.x->menubar_widget->core.height + f->display.x->menubar_widget->core.border_width) : 0); + extern char *lwlib_toolkit_type; if (FRAME_EXTERNAL_MENU_BAR (f)) { @@ -2515,6 +2517,13 @@ f->display.x->menubar_height = menubar_size; + /* Motif seems to need this amount added to the sizes + specified for the shell widget. The Athena/Lucid widgets don't. + Both conclusions reached experimentally. -- rms. */ + if (!strcmp (lwlib_toolkit_type, "motif")) + XtVaGetValues (f->display.x->edit_widget, XtNinternalBorderWidth, + &extra_borders, NULL); + /* Convert our geometry parameters into a geometry string and specify it. Note that we do not specify here whether the position @@ -2531,13 +2540,15 @@ top = -top; if (window_prompting & USPosition) - sprintf (shell_position, "=%dx%d%c%d%c%d", PIXEL_WIDTH (f), - PIXEL_HEIGHT (f) + menubar_size, + sprintf (shell_position, "=%dx%d%c%d%c%d", + PIXEL_WIDTH (f) + extra_borders, + PIXEL_HEIGHT (f) + menubar_size + extra_borders, (xneg ? '-' : '+'), left, (yneg ? '-' : '+'), top); else - sprintf (shell_position, "=%dx%d", PIXEL_WIDTH (f), - PIXEL_HEIGHT (f) + menubar_size); + sprintf (shell_position, "=%dx%d", + PIXEL_WIDTH (f) + extra_borders, + PIXEL_HEIGHT (f) + menubar_size + extra_borders); } len = strlen (shell_position) + 1;