#
[bpt/emacs.git] / src / widget.c
index 1d0cf99..6594775 100644 (file)
@@ -238,6 +238,8 @@ get_wm_shell (w)
   return wmshell;
 }
 
+#if 0 /* Currently not used.  */
+
 static void
 mark_shell_size_user_specified (wmshell)
      Widget wmshell;
@@ -248,6 +250,8 @@ mark_shell_size_user_specified (wmshell)
   ((WMShellWidget) wmshell)->wm.size_hints.flags |= USSize;
 }
 
+#endif
+
 
 /* Can't have static frame locals because of some broken compilers.
    Normally, initializing a variable like this doesn't work in emacs,
@@ -255,7 +259,9 @@ mark_shell_size_user_specified (wmshell)
    thus have its data not go into text space) because Xt needs to
    write to initialized data objects too.
  */
+#if 0
 static Boolean first_frame_p = True;
+#endif
 
 static void
 set_frame_size (ew)
@@ -296,30 +302,12 @@ set_frame_size (ew)
 
    */
 
-  /* Geometry of the AppShell */
-  int app_flags = 0;
-  int app_x = 0;
-  int app_y = 0;
-  unsigned int app_w = 0;
-  unsigned int app_h = 0;
-  
-  /* Geometry of the EmacsFrame */
-  int frame_flags = 0;
-  int frame_x = 0;
-  int frame_y = 0;
-  unsigned int frame_w = 0;
-  unsigned int frame_h = 0;
-  
   /* Hairily merged geometry */
-  int x = 0;
-  int y = 0;
   unsigned int w = ew->emacs_frame.frame->width;
   unsigned int h = ew->emacs_frame.frame->height;
-  int flags = 0;
   
   Widget wmshell = get_wm_shell ((Widget) ew);
   /* Each Emacs shell is now independent and top-level.  */
-  Widget app_shell = wmshell;
   
   if (! XtIsSubclass (wmshell, shellWidgetClass)) abort ();
 
@@ -432,7 +420,6 @@ set_frame_size (ew)
   {
     struct frame* frame = ew->emacs_frame.frame;
     Dimension pixel_width, pixel_height;
-    char shell_position [32];
 
     /* Take into account the size of the scrollbar.  Always use the
        number of columns occupied by the scroll bar here otherwise we
@@ -446,9 +433,9 @@ set_frame_size (ew)
            * FONT_WIDTH (frame->output_data.x->font)));
 
     frame->output_data.x->flags_areas_extra
-      = 2 * FRAME_FLAGS_AREA_WIDTH (frame);
+      = FRAME_FLAGS_AREA_WIDTH (frame);
 
-    change_frame_size (frame, h, w, 1, 0);
+    change_frame_size (frame, h, w, 1, 0, 0);
     char_to_pixel_size (ew, w, h, &pixel_width, &pixel_height);
     ew->core.width = pixel_width;
     ew->core.height = pixel_height;
@@ -546,6 +533,8 @@ update_wm_hints (ew)
                 0);
 }
 
+#if 0
+
 static void
 create_frame_gcs (ew)
      EmacsFrame ew;
@@ -565,6 +554,8 @@ create_frame_gcs (ew)
   s->output_data.x->white_relief.gc = 0;
 }
 
+#endif /* 0 */
+
 static char setup_frame_cursor_bits[] =
 {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -783,7 +774,7 @@ EmacsFrameResize (widget)
   int rows;
 
   pixel_to_char_size (ew, ew->core.width, ew->core.height, &columns, &rows);
-  change_frame_size (f, rows, columns, 0, 1);
+  change_frame_size (f, rows, columns, 0, 1, 0);
   update_wm_hints (ew); 
   update_various_frame_slots (ew);
 
@@ -841,7 +832,7 @@ EmacsFrameSetValues (cur_widget, req_widget, new_widget, dum1, dum2)
       new->core.height = pixel_height;
 
       change_frame_size (new->emacs_frame.frame, char_height, char_width,
-                         1, 0);
+                         1, 0, 0);
       needs_a_refresh = True;
     }
 
@@ -906,12 +897,10 @@ EmacsFrameSetCharSize (widget, columns, rows)
      int rows;
 {
   EmacsFrame ew = (EmacsFrame) widget;
-  Dimension pixel_width, pixel_height, granted_width, granted_height;
-  XtGeometryResult result;
+  Dimension pixel_width, pixel_height;
   struct frame *f = ew->emacs_frame.frame;
   Arg al[10];
   int ac = 0;
-  Dimension border_width;
   
   if (columns < 3) columns = 3;  /* no way buddy */
 
@@ -922,18 +911,20 @@ EmacsFrameSetCharSize (widget, columns, rows)
        : (FRAME_SCROLL_BAR_COLS (f) * FONT_WIDTH (f->output_data.x->font)));
 
   f->output_data.x->flags_areas_extra
-    = 2 * FRAME_FLAGS_AREA_WIDTH (f);
+    = FRAME_FLAGS_AREA_WIDTH (f);
+
+  char_to_pixel_size (ew, columns, rows, &pixel_width, &pixel_height);
 
+#if 0  /* This doesn't seem to be right.  The frame gets too wide. --gerd.  */
   /* Something is really strange here wrt to the border width:
      Apparently, XtNwidth and XtNheight include the border, so we have
      to add it here.  But the XtNborderWidth set for the widgets has
      no similarity to what f->output_data.x->border_width is set to.  */
-  char_to_pixel_size (ew, columns, rows, &pixel_width, &pixel_height);
-
   XtVaGetValues (widget, XtNborderWidth, &border_width, NULL);
   pixel_height += 2 * border_width;
   pixel_width += 2 * border_width;
-  
+#endif
+
   /* Manually change the height and width of all our widgets,
      adjusting each widget by the same increments.  */
   if (ew->core.width != pixel_width
@@ -971,8 +962,6 @@ EmacsFrameSetCharSize (widget, columns, rows)
       update_hints_inhibit = 0;
       update_wm_hints (ew);
 
-      do_pending_window_change ();
-
       /* These seem to get clobbered.  I don't know why. - rms.  */
       f->output_data.x->widget->core.x = old_left;
       f->output_data.x->widget->core.y = old_top;