summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xterm.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 819f7fd7e49..dc7e3283a5c 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -21676,11 +21676,12 @@ handle_one_xevent (struct x_display_info *dpyinfo,
if (!menu_bar_p && !tool_bar_p)
{
- x_catch_errors (dpyinfo->display);
-
if (f && device->direct_p)
{
*finish = X_EVENT_DROP;
+
+ x_catch_errors (dpyinfo->display);
+
if (x_input_grab_touch_events)
XIAllowTouchEvents (dpyinfo->display, xev->deviceid,
xev->detail, xev->event, XIAcceptTouch);
@@ -21700,13 +21701,18 @@ handle_one_xevent (struct x_display_info *dpyinfo,
if (source)
inev.ie.device = source->name;
}
+
+ x_uncatch_errors ();
}
#ifndef HAVE_GTK3
else if (x_input_grab_touch_events)
- XIAllowTouchEvents (dpyinfo->display, xev->deviceid,
- xev->detail, xev->event, XIRejectTouch);
+ {
+ x_ignore_errors_for_next_request (dpyinfo);
+ XIAllowTouchEvents (dpyinfo->display, xev->deviceid,
+ xev->detail, xev->event, XIRejectTouch);
+ x_stop_ignoring_errors (dpyinfo);
+ }
#endif
- x_uncatch_errors ();
}
else
{