diff src/xfns.c @ 12190:e0abe30899a9

[USE_X_TOOLKIT] (x_window): If using Motif, add some extra to sizes, for consistent behavior.
author Karl Heuer <kwzh@gnu.org>
date Sun, 11 Jun 1995 20:27:39 +0000
parents 832023e90d4d
children 5537ed125771
line wrap: on
line diff
--- 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;