]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/dnd.cpp
Added list style to text attributes, independent from paragraph style
[wxWidgets.git] / src / gtk / dnd.cpp
index 2d234e0f9217644224ead3c9aaf4fe19e44fd064..6ef44f891a2bb405b016da6016b844d7de6399b6 100644 (file)
@@ -655,7 +655,7 @@ source_drag_data_get  (GtkWidget          *WXUNUSED(widget),
 
 extern "C" {
 static void source_drag_data_delete( GtkWidget *WXUNUSED(widget),
 
 extern "C" {
 static void source_drag_data_delete( GtkWidget *WXUNUSED(widget),
-                                     GdkDragContext *context,
+                                     GdkDragContext *WXUNUSED(context),
                                      wxDropSource *WXUNUSED(drop_source) )
 {
     if (g_isIdle)
                                      wxDropSource *WXUNUSED(drop_source) )
 {
     if (g_isIdle)
@@ -706,8 +706,7 @@ extern "C" {
 static gint
 gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDropSource *source )
 {
 static gint
 gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDropSource *source )
 {
-    if (g_isIdle)
-        wxapp_install_idle_handler();
+    // don't need to install idle handler, its done from "event" signal
 
     source->GiveFeedback( ConvertFromGTK(source->m_dragContext->action) );
 
 
     source->GiveFeedback( ConvertFromGTK(source->m_dragContext->action) );
 
@@ -911,6 +910,14 @@ wxDragResult wxDropSource::DoDragDrop(int flags)
 
     UnregisterWindow();
 
 
     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;
 }
 
     return m_retValue;
 }