changeset 38219:f70ea2b09e46

(EmacsFrameSetCharSize): Turn off atimers and block SIGIO around the code where Xt might wait for a ConfigureNotifyEvent. (toplevel): Include <signal.h> and syssignal.h.
author Gerd Moellmann <gerd@gnu.org>
date Wed, 27 Jun 2001 17:15:56 +0000
parents ab6119af2d6b
children 8d33f95a7961
files src/widget.c
diffstat 1 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/widget.c	Wed Jun 27 15:56:51 2001 +0000
+++ b/src/widget.c	Wed Jun 27 17:15:56 2001 +0000
@@ -51,6 +51,9 @@
 #include <X11/ShellP.h>
 #include "../lwlib/lwlib.h"
 
+#include <signal.h>
+#include "syssignal.h"
+
 #define max(a, b) ((a) > (b) ? (a) : (b))
 
 /* This sucks: this is the first default that x-faces.el tries.  This won't
@@ -956,6 +959,15 @@
       XtVaSetValues (f->output_data.x->widget,
 		     XtNwaitForWm, (XtArgVal) f->output_data.x->wait_for_wm,
 		     NULL);
+
+      /* Workaround: When a SIGIO or SIGALRM occurs while Xt is
+	 waiting for a ConfigureNotify event (see above), this leads
+	 to Xt waiting indefinitely instead of using its default
+	 timeout (5 seconds).  */
+      turn_on_atimers (0);
+#ifdef SIGIO
+      sigblock (sigmask (SIGIO));
+#endif
       
       /* Do parents first, otherwise LessTif's geometry management
 	 enters an infinite loop (as of 2000-01-15).  This is fixed in
@@ -973,7 +985,11 @@
                      XtNheight, (XtArgVal) pixel_height,
       		     XtNwidth, (XtArgVal) pixel_width,
 		     NULL);
- 
+#ifdef SIGIO
+      sigunblock (sigmask (SIGIO));
+#endif
+      turn_on_atimers (1);
+      
       lw_refigure_widget (f->output_data.x->column_widget, True);
 
       update_hints_inhibit = 0;