From 9d6a29af5ec0724967244cc8a64d9b512dc01651 Mon Sep 17 00:00:00 2001 From: Ignacio Rodriguez Date: Thu, 12 Dec 2013 19:27:17 +0000 Subject: Show watch cursor when invert colors function is called --- diff --git a/Area.py b/Area.py index 06f744f..68c0e1c 100644 --- a/Area.py +++ b/Area.py @@ -1198,7 +1198,7 @@ class Area(Gtk.DrawingArea): self._do_process(widget, proc_grayscale) - def invert_colors(self, widget): + def invert_colors(self, widget, old_cursor, source_id, window): """Apply invert effect. @param self -- the Area object (GtkDrawingArea) @@ -1206,7 +1206,7 @@ class Area(Gtk.DrawingArea): """ - def internal_invert(self, old_cursor): + def internal_invert(self, old_cursor, source_id, window): # load a array with the surface data for array_type in ['H', 'I', 'L']: pixels = array.array(array_type) @@ -1237,11 +1237,11 @@ class Area(Gtk.DrawingArea): self.queue_draw() self.enable_undo() - self.get_window().set_cursor(old_cursor) + GObject.source_remove(source_id) + window.set_cursor(old_cursor) - old_cursor = self.get_window().get_cursor() - self.get_window().set_cursor(Gdk.Cursor.new(Gdk.CursorType.WATCH)) - GObject.idle_add(internal_invert, self, old_cursor) + GObject.idle_add(internal_invert, self, old_cursor, + source_id, window) def mirror(self, widget, horizontal=True): """Apply mirror horizontal/vertical effect. diff --git a/toolbox.py b/toolbox.py index b4e624e..0646892 100644 --- a/toolbox.py +++ b/toolbox.py @@ -814,4 +814,12 @@ class ImageToolbar(Gtk.Toolbar): self.properties['name'] = self._EFFECT_RAINBOW_NAME def invert_colors(self, widget): - self._activity.area.invert_colors(widget) + window = self.get_window() + old_cursor = window.get_cursor() + source_id = GObject.idle_add(self.set_watch_cursor, window) + self._activity.area.invert_colors(widget, old_cursor, + source_id, window) + + def set_watch_cursor(self, window): + window.set_cursor(Gdk.Cursor.new(Gdk.CursorType.WATCH)) + return True -- cgit v0.9.1