Code

do not change cursor if desktop has set it to waiting
authorbuliabyak <buliabyak@users.sourceforge.net>
Wed, 28 Jan 2009 23:34:37 +0000 (23:34 +0000)
committerbuliabyak <buliabyak@users.sourceforge.net>
Wed, 28 Jan 2009 23:34:37 +0000 (23:34 +0000)
src/select-context.cpp

index c7b305dd201aee4fd63487469a607cfefa216d8c..fd4e132e1798cb054553f5e483a14b881916c90e 100644 (file)
@@ -360,14 +360,17 @@ sp_select_context_item_handler(SPEventContext *event_context, SPItem *item, GdkE
 
         case GDK_ENTER_NOTIFY:
         {
-            GdkCursor *cursor = gdk_cursor_new(GDK_FLEUR);
-            gdk_window_set_cursor(GTK_WIDGET(sp_desktop_canvas(desktop))->window, cursor);
-            gdk_cursor_destroy(cursor);
+            if (!desktop->isWaitingCursor()) {
+                GdkCursor *cursor = gdk_cursor_new(GDK_FLEUR);
+                gdk_window_set_cursor(GTK_WIDGET(sp_desktop_canvas(desktop))->window, cursor);
+                gdk_cursor_destroy(cursor);
+            }
             break;
         }
 
         case GDK_LEAVE_NOTIFY:
-            gdk_window_set_cursor(GTK_WIDGET(sp_desktop_canvas(desktop))->window, event_context->cursor);
+            if (!desktop->isWaitingCursor())
+                gdk_window_set_cursor(GTK_WIDGET(sp_desktop_canvas(desktop))->window, event_context->cursor);
             break;
 
         case GDK_KEY_PRESS:
@@ -713,7 +716,7 @@ sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event)
                                                 _("<b>Shift</b>: click to toggle select; drag for rubberband selection"),
                                                 _("<b>Alt</b>: click to select under; drag to move selected or select by touch"));
                     // if Alt and nonempty selection, show moving cursor ("move selected"):
-                    if (alt && !selection->isEmpty()) {
+                    if (alt && !selection->isEmpty() && !desktop->isWaitingCursor()) {
                         GdkCursor *cursor = gdk_cursor_new(GDK_FLEUR);
                         gdk_window_set_cursor(GTK_WIDGET(sp_desktop_canvas(desktop))->window, cursor);
                         gdk_cursor_destroy(cursor);
@@ -935,7 +938,8 @@ sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event)
             }
             }
             // set cursor to default.
-            gdk_window_set_cursor(GTK_WIDGET(sp_desktop_canvas(desktop))->window, event_context->cursor);
+            if (!desktop->isWaitingCursor())
+                gdk_window_set_cursor(GTK_WIDGET(sp_desktop_canvas(desktop))->window, event_context->cursor);
             break;
         default:
             break;