From: Po Lu Date: Tue, 17 May 2022 01:21:19 +0000 (+0800) Subject: Let XTread_socket read events for all non-DND displays X-Git-Tag: emacs-29.0.90~1910^2~638 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e52159d0dc45bf0a7f363c8a4cf2a490094e970b;p=emacs.git 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. --- 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 ();