aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xmenu.c19
2 files changed, 16 insertions, 8 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 0c2b34a4ee6..e80dd578c13 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12009-03-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * xmenu.c (xdialog_show): Move Fredisplay call ...
4 (Fx_popup_dialog): ... here.
5
12009-03-18 Stefan Monnier <monnier@iro.umontreal.ca> 62009-03-18 Stefan Monnier <monnier@iro.umontreal.ca>
2 7
3 * dired.c (file_name_completion): Disable the first optimization just 8 * dired.c (file_name_completion): Disable the first optimization just
diff --git a/src/xmenu.c b/src/xmenu.c
index 6767c1b38f8..c6d7b0d9585 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -604,6 +604,17 @@ for instance using the window manager, then this produces a quit and
604 if (! FRAME_X_P (f) && ! FRAME_MSDOS_P (f)) 604 if (! FRAME_X_P (f) && ! FRAME_MSDOS_P (f))
605 error ("Can not put X dialog on this terminal"); 605 error ("Can not put X dialog on this terminal");
606 606
607 /* Force a redisplay before showing the dialog. If a frame is created
608 just before showing the dialog, its contents may not have been fully
609 drawn, as this depends on timing of events from the X server. Redisplay
610 is not done when a dialog is shown. If redisplay could be done in the
611 X event loop (i.e. the X event loop does not run in a signal handler)
612 this would not be needed.
613
614 Do this before creating the widget value that points to Lisp
615 string contents, because Fredisplay may GC and relocate them. */
616 Fredisplay (Qt);
617
607#if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK) 618#if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
608 /* Display a menu with these alternatives 619 /* Display a menu with these alternatives
609 in the middle of frame F. */ 620 in the middle of frame F. */
@@ -2448,14 +2459,6 @@ xdialog_show (f, keymaps, title, header, error_name)
2448 /* No selection has been chosen yet. */ 2459 /* No selection has been chosen yet. */
2449 menu_item_selection = 0; 2460 menu_item_selection = 0;
2450 2461
2451 /* Force a redisplay before showing the dialog. If a frame is created
2452 just before showing the dialog, its contents may not have been fully
2453 drawn, as this depends on timing of events from the X server. Redisplay
2454 is not done when a dialog is shown. If redisplay could be done in the
2455 X event loop (i.e. the X event loop does not run in a signal handler)
2456 this would not be needed. */
2457 Fredisplay (Qt);
2458
2459 /* Actually create and show the dialog. */ 2462 /* Actually create and show the dialog. */
2460 create_and_show_dialog (f, first_wv); 2463 create_and_show_dialog (f, first_wv);
2461 2464