diff --git a/src/xmenu.c b/src/xmenu.c index b9aabd94ae1..fd6fc960739 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -3333,6 +3333,14 @@ xdialog_show (f, keymaps, title, header, error_name) /* No selection has been chosen yet. */ menu_item_selection = 0; + /* Force a redisplay before showing the dialog. If a frame is created + just before showing the dialog, its contents may not have been fully + drawn, as this depends on timing of events from the X server. Redisplay + is not done when a dialog is shown. If redisplay could be done in the + X event loop (i.e. the X event loop does not run in a signal handler) + this would not be needed. */ + Fredisplay (Qt); + /* Actually create and show the dialog. */ create_and_show_dialog (f, first_wv);