]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't generate superfluous wheel events during drag and drop
authorPo Lu <luangruo@yahoo.com>
Mon, 20 Jun 2022 01:17:21 +0000 (09:17 +0800)
committerPo Lu <luangruo@yahoo.com>
Mon, 20 Jun 2022 01:17:21 +0000 (09:17 +0800)
* src/xterm.c (handle_one_xevent): Only set user time and don't
create wheel events if DND is in progress.

src/xterm.c

index 9a31f9ea094e4c9daa444645c306f8ec1152e819..12d091c1d92e9dc770669a8e1d9e2c6e0c4bc3d3 100644 (file)
@@ -19609,6 +19609,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
                      x_display_set_last_user_time (dpyinfo, xev->time,
                                                    xev->send_event);
 
+
 #if defined USE_GTK && !defined HAVE_GTK3
                      /* Unlike on Motif, we can't select for XI
                         events on the scroll bar window under GTK+ 2.
@@ -19623,6 +19624,15 @@ handle_one_xevent (struct x_display_info *dpyinfo,
                        goto XI_OTHER;
 #endif
 
+                     /* If this happened during a drag-and-drop
+                        operation, don't send an event.  We only have
+                        to set the user time.  */
+                     if (x_dnd_in_progress
+                         && (command_loop_level + minibuf_level
+                             <= x_dnd_recursion_depth)
+                         && dpyinfo == FRAME_DISPLAY_INFO (x_dnd_frame))
+                       goto XI_OTHER;
+
                      if (fabs (total_x) > 0 || fabs (total_y) > 0)
                        {
                          inev.ie.kind = (fabs (total_y) >= fabs (total_x)
@@ -20853,8 +20863,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
 #endif
 
                  XSETFRAME (inev.ie.frame_or_window, f);
-                 inev.ie.modifiers
-                   = x_x_to_emacs_modifiers (FRAME_DISPLAY_INFO (f), state);
+                 inev.ie.modifiers = x_x_to_emacs_modifiers (dpyinfo, state);
                  inev.ie.timestamp = xev->time;
 
 #ifdef HAVE_X_I18N