From e52159d0dc45bf0a7f363c8a4cf2a490094e970b Mon Sep 17 00:00:00 2001 From: Po Lu Date: Tue, 17 May 2022 09:21:19 +0800 Subject: [PATCH] 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 181b6c2ec3b..f81d99ca129 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 (); -- 2.39.2