mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-04-21 05:21:37 -07:00
Fix an infinite loop if the window manager pings Emacs during DND
* src/xterm.c (handle_one_xevent): Work around _NET_WM_PING infinite loop during drag and drop.
This commit is contained in:
parent
d81df9e449
commit
ebd5725e0b
1 changed files with 13 additions and 1 deletions
14
src/xterm.c
14
src/xterm.c
|
|
@ -11014,7 +11014,19 @@ handle_one_xevent (struct x_display_info *dpyinfo,
|
|||
|
||||
send_event.xclient.window = dpyinfo->root_window;
|
||||
XSendEvent (dpyinfo->display, dpyinfo->root_window, False,
|
||||
SubstructureRedirectMask | SubstructureNotifyMask,
|
||||
/* FIXME: handling window stacking changes
|
||||
during drag-and-drop requires Emacs to
|
||||
select for SubstructureNotifyMask,
|
||||
which in turn causes the message to be
|
||||
sent to Emacs itself using the event
|
||||
mask specified by the EWMH. To avoid
|
||||
an infinite loop, just use
|
||||
SubstructureRedirectMask when a
|
||||
drag-and-drop operation is in
|
||||
progress. */
|
||||
((x_dnd_in_progress || x_dnd_waiting_for_finish)
|
||||
? SubstructureRedirectMask
|
||||
: SubstructureRedirectMask | SubstructureNotifyMask),
|
||||
&send_event);
|
||||
|
||||
*finish = X_EVENT_DROP;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue