From 0f4309a32457385bd6266cd8f3ac63e4d5c39515 Mon Sep 17 00:00:00 2001 From: Sam Parkinson Date: Wed, 15 Jun 2016 08:01:11 +1000 Subject: [PATCH] Don't activate EventIcons after touch long press Steps to reproduce: 1. Long press activity icon on homeview Expcected: Palette invokes, icon not activated Actual: Palette invokes, icon also activated, activity launched This was because the "activate" signal was emitted before the palette invoker got it's signal, meaning the palette invoker couldn't scilence the event. --- src/sugar3/graphics/icon.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sugar3/graphics/icon.py b/src/sugar3/graphics/icon.py index c9d278be..52916c1f 100644 --- a/src/sugar3/graphics/icon.py +++ b/src/sugar3/graphics/icon.py @@ -575,7 +575,10 @@ class EventIcon(Gtk.EventBox): self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.TOUCH_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK) - self.connect('button-release-event', self.__button_release_event_cb) + # Connect after the default so that the palette can silence events + # for example, after a touch palette invocation + self.connect_after('button-release-event', + self.__button_release_event_cb) for key, value in kwargs.iteritems(): self.set_property(key, value)