changeset 38182:fd45b8013008

(EmacsFrameSetCharSize): Set XtNwaitForWm depending on the value of the wait-for-wm frame parameter.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 25 Jun 2001 15:36:53 +0000
parents 5e58e0fd7be7
children 3ef7b5a020b2
files src/widget.c
diffstat 1 files changed, 31 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/widget.c	Mon Jun 25 11:13:57 2001 +0000
+++ b/src/widget.c	Mon Jun 25 15:36:53 2001 +0000
@@ -525,12 +525,12 @@
 /*  ((WMShellWidget) wmshell)->wm.size_hints.flags |= USSize;*/
 
   XtVaSetValues (wmshell,
-		 XtNbaseWidth, base_width,
-		 XtNbaseHeight, base_height,
-		 XtNwidthInc, cw, 
-		 XtNheightInc, ch,
-		 XtNminWidth, base_width + min_cols * cw,
-		 XtNminHeight, base_height + min_rows * ch,
+		 XtNbaseWidth, (XtArgVal) base_width,
+		 XtNbaseHeight, (XtArgVal) base_height,
+		 XtNwidthInc, (XtArgVal) cw, 
+		 XtNheightInc, (XtArgVal) ch,
+		 XtNminWidth, (XtArgVal) (base_width + min_cols * cw),
+		 XtNminHeight, (XtArgVal) (base_height + min_rows * ch),
 		 NULL);
 }
 
@@ -853,7 +853,8 @@
   if (cur->emacs_frame.iconic != new->emacs_frame.iconic)
     {
       Widget wmshell = get_wm_shell ((Widget) cur);
-      XtVaSetValues (wmshell, XtNiconic, new->emacs_frame.iconic, NULL);
+      XtVaSetValues (wmshell, XtNiconic,
+		     (XtArgVal) new->emacs_frame.iconic, NULL);
     }
 
   return needs_a_refresh;
@@ -939,22 +940,39 @@
       int old_left = f->output_data.x->widget->core.x;
       int old_top = f->output_data.x->widget->core.y;
 
+      /* Input is blocked here, and Xt waits for some event to
+         occur.  */
+
       lw_refigure_widget (f->output_data.x->column_widget, False);
       update_hints_inhibit = 1;
 
+      /* Xt waits for a ConfigureNotify event from the window manager
+	 in EmacsFrameSetCharSize when the shell widget is resized.
+	 For some window managers like fvwm2 2.2.5 and KDE 2.1 this
+	 event doesn't arrive for an unknown reason and Emacs hangs in
+	 Xt when the default font is changed.  Tell Xt not to wait,
+	 depending on the value of the frame parameter
+	 `wait-for-wm'.  */
+      XtVaSetValues (f->output_data.x->widget,
+		     XtNwaitForWm, (XtArgVal) f->output_data.x->wait_for_wm,
+		     NULL);
+      
       /* Do parents first, otherwise LessTif's geometry management
 	 enters an infinite loop (as of 2000-01-15).  This is fixed in
 	 later versions of LessTif (as of 2001-03-13); I'll leave it
 	 as is because I think it can't do any harm.  */
       XtVaSetValues (f->output_data.x->widget,
-      		     XtNheight, outer_widget_height + hdelta,
-		     XtNwidth, outer_widget_width + wdelta, NULL);
+      		     XtNheight, (XtArgVal) (outer_widget_height + hdelta),
+		     XtNwidth, (XtArgVal) (outer_widget_width + wdelta),
+		     NULL);
       XtVaSetValues (f->output_data.x->column_widget,
-      		     XtNheight, column_widget_height + hdelta,
-      		     XtNwidth, column_widget_width + wdelta, NULL);
+      		     XtNheight, (XtArgVal) (column_widget_height + hdelta),
+      		     XtNwidth, (XtArgVal) column_widget_width + wdelta,
+		     NULL);
       XtVaSetValues ((Widget) ew,
-                     XtNheight, pixel_height,
-      		     XtNwidth, pixel_width, NULL);
+                     XtNheight, (XtArgVal) pixel_height,
+      		     XtNwidth, (XtArgVal) pixel_width,
+		     NULL);
  
       lw_refigure_widget (f->output_data.x->column_widget, True);