]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve performance when rejecting XI touch event
authorPo Lu <luangruo@yahoo.com>
Sun, 3 Jul 2022 11:48:55 +0000 (19:48 +0800)
committerPo Lu <luangruo@yahoo.com>
Sun, 3 Jul 2022 11:49:24 +0000 (19:49 +0800)
* src/xterm.c (handle_one_xevent): Avoid sync handling simple
error.

src/xterm.c

index 819f7fd7e493922d233436ffea87bf908b59c8b5..dc7e3283a5c9f7bac2b5b6ebd9fdee0a70343ae4 100644 (file)
@@ -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
                {