[hamster-applet] remove widget listeners from dispatcher on destroy
- From: Toms Baugis <tbaugis src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [hamster-applet] remove widget listeners from dispatcher on destroy
- Date: Wed, 20 Jan 2010 11:41:25 +0000 (UTC)
commit 903bef7ccc11aec2f79202717318f593a3a8a312
Author: Toms Bauģis <toms baugis gmail com>
Date: Wed Jan 20 11:41:04 2010 +0000
remove widget listeners from dispatcher on destroy
hamster/widgets/activityentry.py | 7 +++++++
hamster/widgets/tags.py | 6 ++++++
2 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/hamster/widgets/activityentry.py b/hamster/widgets/activityentry.py
index 59e1468..7d19089 100644
--- a/hamster/widgets/activityentry.py
+++ b/hamster/widgets/activityentry.py
@@ -91,6 +91,7 @@ class ActivityEntry(gtk.Entry):
self.connect("key-release-event", self._on_key_release_event)
self.connect("focus-out-event", self._on_focus_out_event)
self.connect("changed", self._on_text_changed)
+ self.connect("parent-set", self._on_parent_set)
runtime.dispatcher.add_handler('activity_updated', self.after_activity_update)
@@ -298,3 +299,9 @@ class ActivityEntry(gtk.Entry):
self.emit("value-entered")
self.news = False
+
+
+ def _on_parent_set(self, old_parent, user_data):
+ # when parent changes to itself, that means that it has been actually deleted
+ if old_parent and old_parent == self.get_toplevel():
+ runtime.dispatcher.del_handler('activity_updated', self.after_activity_update)
diff --git a/hamster/widgets/tags.py b/hamster/widgets/tags.py
index 61cb23b..e49583c 100644
--- a/hamster/widgets/tags.py
+++ b/hamster/widgets/tags.py
@@ -57,6 +57,7 @@ class TagsEntry(gtk.Entry):
self.connect("key-press-event", self._on_key_press_event)
self.connect("key-release-event", self._on_key_release_event)
self.connect("focus-out-event", self._on_focus_out_event)
+ self.connect("parent-set", self._on_parent_set)
runtime.dispatcher.add_handler('new_tags_added', self.refresh_tags)
self.show()
@@ -205,6 +206,11 @@ class TagsEntry(gtk.Entry):
return False
+ def _on_parent_set(self, old_parent, user_data):
+ # when parent changes to itself, that means that it has been actually deleted
+ if old_parent and old_parent == self.get_toplevel():
+ runtime.dispatcher.del_handler('new_tags_added', self.refresh_tags)
+
class TagBox(graphics.Area):
__gsignals__ = {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]