Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2008-09-18 12:12:18 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2008-09-18 12:50:58 (GMT)
commitf2a8948bf15a5e669f02aa26d1e267ad11cb0ac8 (patch)
tree786e82cb194a74437f8eb9f1463914ac161fcca3 /src
parent1ab0c678302754174e4594eae4c280b90096e765 (diff)
#8485 Detach from palette when a widget is destroyed
Diffstat (limited to 'src')
-rw-r--r--src/sugar/graphics/radiotoolbutton.py6
-rw-r--r--src/sugar/graphics/toggletoolbutton.py6
-rw-r--r--src/sugar/graphics/toolbutton.py6
-rw-r--r--src/sugar/graphics/tray.py6
4 files changed, 24 insertions, 0 deletions
diff --git a/src/sugar/graphics/radiotoolbutton.py b/src/sugar/graphics/radiotoolbutton.py
index abdf54c..e2636dc 100644
--- a/src/sugar/graphics/radiotoolbutton.py
+++ b/src/sugar/graphics/radiotoolbutton.py
@@ -36,6 +36,12 @@ class RadioToolButton(gtk.RadioToolButton):
self._palette_invoker.attach_tool(self)
+ self.connect('destroy', self.__destroy_cb)
+
+ def __destroy_cb(self, icon):
+ if self._palette_invoker is not None:
+ self._palette_invoker.detach()
+
def set_tooltip(self, tooltip):
""" Set a simple palette with just a single label.
"""
diff --git a/src/sugar/graphics/toggletoolbutton.py b/src/sugar/graphics/toggletoolbutton.py
index ec622b4..35c4bf1 100644
--- a/src/sugar/graphics/toggletoolbutton.py
+++ b/src/sugar/graphics/toggletoolbutton.py
@@ -30,6 +30,12 @@ class ToggleToolButton(gtk.ToggleToolButton):
self._palette_invoker = ToolInvoker(self)
self.set_named_icon(named_icon)
+ self.connect('destroy', self.__destroy_cb)
+
+ def __destroy_cb(self, icon):
+ if self._palette_invoker is not None:
+ self._palette_invoker.detach()
+
def set_named_icon(self, named_icon):
icon = Icon(icon_name=named_icon)
self.set_icon_widget(icon)
diff --git a/src/sugar/graphics/toolbutton.py b/src/sugar/graphics/toolbutton.py
index 715e7a9..a80c67a 100644
--- a/src/sugar/graphics/toolbutton.py
+++ b/src/sugar/graphics/toolbutton.py
@@ -68,6 +68,12 @@ class ToolButton(gtk.ToolButton):
self.get_child().connect('can-activate-accel',
self.__button_can_activate_accel_cb)
+ self.connect('destroy', self.__destroy_cb)
+
+ def __destroy_cb(self, icon):
+ if self._palette_invoker is not None:
+ self._palette_invoker.detach()
+
def __button_can_activate_accel_cb(self, button, signal_id):
# Accept activation via accelerators regardless of this widget's state
return True
diff --git a/src/sugar/graphics/tray.py b/src/sugar/graphics/tray.py
index 8296a53..d5e9b39 100644
--- a/src/sugar/graphics/tray.py
+++ b/src/sugar/graphics/tray.py
@@ -358,6 +358,12 @@ class TrayIcon(gtk.ToolItem):
self.set_size_request(style.GRID_CELL_SIZE, style.GRID_CELL_SIZE)
+ self.connect('destroy', self.__destroy_cb)
+
+ def __destroy_cb(self, icon):
+ if self._palette_invoker is not None:
+ self._palette_invoker.detach()
+
def create_palette(self):
return None