summaryrefslogtreecommitdiff
path: root/src/xmenu.c
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-03-07 21:36:25 +0800
committerPo Lu <luangruo@yahoo.com>2022-03-07 21:36:25 +0800
commit418e5da5d308b4e440f28545eb139211066b48a4 (patch)
tree6061adb42a47040a10f8d36854f6e924c4202ac6 /src/xmenu.c
parent8a7df412a640c8b2334b78ec0ca872a6d11e8b0e (diff)
downloademacs-418e5da5d308b4e440f28545eb139211066b48a4.tar.gz
Correctly handle exposure in oldXMenu
* oldXMenu/Activate.c (XMenuActivate): Call set expose_func if no pane was found. (XMenuActivateSetExposeFunction): New function. * oldXMenu/XMenu.h: New typedef `expose_func'. Update prototypes. * src/xmenu.c (x_menu_expose_event): New function. (x_menu_show): Set expose event handler. * src/xterm.c (x_dispatch_event): Make `static' only on GTK. * src/xterm.h: Expose `x_dispatch_event' on no-toolkit builds.
Diffstat (limited to 'src/xmenu.c')
-rw-r--r--src/xmenu.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/xmenu.c b/src/xmenu.c
index e085fa1ace5..4d0e5bd81c2 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -280,6 +280,14 @@ x_menu_translate_generic_event (XEvent *event)
}
}
#endif
+
+#if !defined USE_X_TOOLKIT && !defined USE_GTK
+static void
+x_menu_expose_event (XEvent *event)
+{
+ x_dispatch_event (event, event->xexpose.display);
+}
+#endif
#endif /* ! MSDOS */
@@ -2638,6 +2646,7 @@ x_menu_show (struct frame *f, int x, int y, int menuflags,
#ifdef HAVE_XINPUT2
XMenuActivateSetTranslateFunction (x_menu_translate_generic_event);
#endif
+ XMenuActivateSetExposeFunction (x_menu_expose_event);
#endif
record_unwind_protect_ptr (pop_down_menu,