X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1481968400c94128642815b6871724f118141cbc..994453b843b007de6367fedbf4a49ac9d920c63c:/src/gtk/dnd.cpp?ds=inline diff --git a/src/gtk/dnd.cpp b/src/gtk/dnd.cpp index aadec6a638..7565e877ba 100644 --- a/src/gtk/dnd.cpp +++ b/src/gtk/dnd.cpp @@ -910,6 +910,14 @@ wxDragResult wxDropSource::DoDragDrop(int flags) UnregisterWindow(); + // this shouldn't be needed but somehow, sometimes, without this the cursor + // stays grabbed even when the DND operation ends and the application + // becomes unresponsive and has to be killed resulting in loss of all + // unsaved data, so while this fix is ugly it's still better than + // alternative + if ( gdk_pointer_is_grabbed() ) + gdk_pointer_ungrab(GDK_CURRENT_TIME); + return m_retValue; }