emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master e52159d0dc: Let XTread_socket read events for all non-DND display


From: Po Lu
Subject: master e52159d0dc: Let XTread_socket read events for all non-DND displays
Date: Mon, 16 May 2022 21:22:12 -0400 (EDT)

branch: master
commit e52159d0dc45bf0a7f363c8a4cf2a490094e970b
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Let XTread_socket read events for all non-DND displays
    
    * src/xterm.c (XTread_socket): Allow reading events from
    displays other than the DND display during drag-and-drop.
---
 src/xterm.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/xterm.c b/src/xterm.c
index 181b6c2ec3..f81d99ca12 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -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 ();



reply via email to

[Prev in Thread] Current Thread [Next in Thread]