1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-30 08:09:04 +00:00

(EmacsFrameSetCharSize): Turn off atimers and block

SIGIO around the code where Xt might wait for a
ConfigureNotifyEvent.
(toplevel): Include <signal.h> and syssignal.h.
This commit is contained in:
Gerd Moellmann 2001-06-27 17:16:23 +00:00
parent 45a21f7551
commit a5d3ec3f49
2 changed files with 22 additions and 1 deletions

View File

@ -1,5 +1,10 @@
2001-06-27 Gerd Moellmann <gerd@gnu.org>
* widget.c (EmacsFrameSetCharSize): Turn off atimers and block
SIGIO around the code where Xt might wait for a
ConfigureNotifyEvent.
(toplevel): Include <signal.h> and syssignal.h.
* sound.c (vox_configure, vox_close): Turn off atimers
around ioctls.

View File

@ -51,6 +51,9 @@ Boston, MA 02111-1307, USA. */
#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 @@ EmacsFrameSetCharSize (widget, columns, rows)
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 @@ EmacsFrameSetCharSize (widget, columns, rows)
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;