CanvasIcon: do not keep it ACTIVE when right-click twice SL #4224

When a CanvasIcon is right-clicked __button_press_event_cb and
__palette_popup_cb are called but not __button_release_event_cb. So,
ACTIVE flag is set but immediately removed by __palette_popup_cb and
PRELIGHT is set.

Now, if the user right-click it again while the palette is popped up,
__button_press_event_cb is called and it sets ACTIVE flag but
__palette_popup_cb is not called again because the palette is already
shown and that makes the icon to keep in ACTIVE state.

This patch checks if the palette is popped up when
__button_press_event_cb is called and if the palette is not popped up
the ACTIVE flag is set.

Signed-off-by: Manuel Kaufmann <humitos@gmail.com>
Acked-by: Manuel Quiñones <manuq@laptop.org>
This commit is contained in:
Manuel Kaufmann 2012-11-29 12:32:04 -03:00 committed by Manuel Quiñones
parent 783db60027
commit 1497ebc006

View File

@ -727,8 +727,9 @@ class CanvasIcon(EventIcon):
self.unset_state_flags(Gtk.StateFlags.PRELIGHT) self.unset_state_flags(Gtk.StateFlags.PRELIGHT)
def __button_press_event_cb(self, icon, event): def __button_press_event_cb(self, icon, event):
self.set_state_flags(self.get_state_flags() | Gtk.StateFlags.ACTIVE, if not self.palette.is_up():
clear=True) self.set_state_flags(self.get_state_flags() | Gtk.StateFlags.ACTIVE,
clear=True)
def __button_release_event_cb(self, icon, event): def __button_release_event_cb(self, icon, event):
self.unset_state_flags(Gtk.StateFlags.ACTIVE) self.unset_state_flags(Gtk.StateFlags.ACTIVE)