diff options
author | Gerd Moellmann <gerd@gnu.org> | 2001-06-25 15:36:53 +0000 |
---|---|---|
committer | Gerd Moellmann <gerd@gnu.org> | 2001-06-25 15:36:53 +0000 |
commit | cbec8c518d92c2d9296f177f695407508b038eae (patch) | |
tree | 262475888483d8c653a295b41b1cc1bd496ee684 /src/widget.c | |
parent | 2b9c25e0c25b7d587b4518c3686d7262707e965a (diff) | |
download | emacs-cbec8c518d92c2d9296f177f695407508b038eae.tar.gz emacs-cbec8c518d92c2d9296f177f695407508b038eae.tar.bz2 emacs-cbec8c518d92c2d9296f177f695407508b038eae.zip |
(EmacsFrameSetCharSize): Set XtNwaitForWm depending
on the value of the wait-for-wm frame parameter.
Diffstat (limited to 'src/widget.c')
-rw-r--r-- | src/widget.c | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/src/widget.c b/src/widget.c index 46be70eca52..a7ba3e3536e 100644 --- a/src/widget.c +++ b/src/widget.c @@ -525,12 +525,12 @@ update_wm_hints (ew) /* ((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 @@ EmacsFrameSetValues (cur_widget, req_widget, new_widget, dum1, dum2) 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 @@ EmacsFrameSetCharSize (widget, columns, rows) 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); |