From 62fc53d75b7e56b4e5f5ce13f16ccdd7a32f2874 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Fri, 17 Dec 2021 19:11:54 +0800 Subject: [PATCH] Update menu bar when processing touch sequences on it * src/xterm.c (handle_one_event): Prevent menu bar from becoming outdated when handling XI_TouchBegin events that may cause it to be opened. --- src/xterm.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/xterm.c b/src/xterm.c index 6f93956e7d9..9f39561fbdb 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -10890,6 +10890,19 @@ handle_one_xevent (struct x_display_info *dpyinfo, xi_link_touch_point (device, xev->detail, xev->event_x, xev->event_y); + if (FRAME_X_OUTPUT (f)->menubar_widget + && xg_event_is_for_menubar (f, event)) + { + bool was_waiting_for_input = waiting_for_input; + /* This hack was adopted from the NS port. Whether + or not it is actually safe is a different story + altogether. */ + if (waiting_for_input) + waiting_for_input = 0; + set_frame_menubar (f, true); + waiting_for_input = was_waiting_for_input; + } + inev.ie.kind = TOUCHSCREEN_BEGIN_EVENT; inev.ie.timestamp = xev->time; XSETFRAME (inev.ie.frame_or_window, f); -- 2.39.5