diff options
| author | YAMAMOTO Mitsuharu | 2009-03-18 08:37:56 +0000 |
|---|---|---|
| committer | YAMAMOTO Mitsuharu | 2009-03-18 08:37:56 +0000 |
| commit | 5da9fdfa169d86a46377ef4af91a612abbf39e37 (patch) | |
| tree | d1c6121be01a59cae7e0e7722496f5875118460e /src | |
| parent | 37e3a2bff8dd9dd8046fd4620d3c9d0344954756 (diff) | |
| download | emacs-5da9fdfa169d86a46377ef4af91a612abbf39e37.tar.gz emacs-5da9fdfa169d86a46377ef4af91a612abbf39e37.zip | |
(xdialog_show): Move Fredisplay call ...
(Fx_popup_dialog): ... here.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/xmenu.c | 19 |
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 @@ | |||
| 1 | 2009-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 | |||
| 1 | 2009-03-18 Stefan Monnier <monnier@iro.umontreal.ca> | 6 | 2009-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 | ||