From 9714dfd285f404df791d862e242cc726a09c2f85 Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Tue, 1 Jul 2014 12:07:32 +0400 Subject: [PATCH] * menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash caused by xw_popup_dialog in daemon mode (Bug#17891). --- src/ChangeLog | 2 ++ src/menu.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index a94bf5dbb46..e733c2820ab 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,6 +1,8 @@ 2014-07-01 Dmitry Antipov * xfaces.c (init_frame_faces): Always realize basic faces (#Bug17889). + * menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash + caused by xw_popup_dialog in daemon mode (Bug#17891). 2014-06-30 Eli Zaretskii diff --git a/src/menu.c b/src/menu.c index 468f2814eb4..654be0db9c7 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1554,6 +1554,11 @@ for instance using the window manager, then this produces a quit and but I don't want to make one now. */ CHECK_WINDOW (window); + /* Note that xw_popup_dialog can call menu code, so + Vmenu_updating_frame should be set (Bug#17891). */ + eassert (f && FRAME_LIVE_P (f)); + XSETFRAME (Vmenu_updating_frame, f); + /* 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 -- 2.39.5