]> git.eshelyaron.com Git - emacs.git/commitdiff
Let XTread_socket read events for all non-DND displays
authorPo Lu <luangruo@yahoo.com>
Tue, 17 May 2022 01:21:19 +0000 (09:21 +0800)
committerPo Lu <luangruo@yahoo.com>
Tue, 17 May 2022 01:21:19 +0000 (09:21 +0800)
* src/xterm.c (XTread_socket): Allow reading events from
displays other than the DND display during drag-and-drop.

src/xterm.c

index 181b6c2ec3b6e64a4bb7f96f342b024ad104a91a..f81d99ca129f301c34ddb0f003b6d2b2ba59f81c 100644 (file)
@@ -20134,8 +20134,14 @@ XTread_socket (struct terminal *terminal, struct input_event *hold_quit)
   /* Don't allow XTread_socket to do anything if drag-and-drop is in
      progress.  If unblock_input causes XTread_socket to be called and
      read X events while the drag-and-drop event loop is in progress,
-     things can go wrong very quick.  */
-  if (x_dnd_in_progress || x_dnd_waiting_for_finish)
+     things can go wrong very quick.
+
+     That doesn't matter for events from displays other than the
+     display of the drag-and-drop operation, though.  */
+  if ((x_dnd_in_progress
+       && dpyinfo->display == FRAME_X_DISPLAY (x_dnd_frame))
+      || (x_dnd_waiting_for_finish
+         && dpyinfo->display == x_dnd_finish_display))
     return 0;
 
   block_input ();