1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-31 17:30:54 -08:00

Prevent race conditions with async input during drag-and-drop

* src/xterm.c (XTread_socket): Don't read events here during
drag-and-drop, otherwise the right hold_quit might not be used
for selection events.
This commit is contained in:
Po Lu 2022-04-16 19:12:04 +08:00
parent 6815db492f
commit 5ad6a08a2e

View file

@ -18968,6 +18968,13 @@ XTread_socket (struct terminal *terminal, struct input_event *hold_quit)
bool event_found = false;
struct x_display_info *dpyinfo = terminal->display_info.x;
/* 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)
return 0;
block_input ();
/* For debugging, this gives a way to fake an I/O error. */