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@sugarlabs.org>2009-02-10 14:00:26 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-02-10 14:00:26 (GMT)
commitdec18e7bfd275925be2916177ae7c106f21a9f27 (patch)
treeb7d9ca0592d1d0f1a1c48aec2fd27ad1f62470e0 /src
parent7115089fb00eb09211a44c104f2d4cba631f56d7 (diff)
Close the object chooser when the activity is closed. #329
Diffstat (limited to 'src')
-rw-r--r--src/jarabe/journal/objectchooser.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/jarabe/journal/objectchooser.py b/src/jarabe/journal/objectchooser.py
index ee894cf..b70cf72 100644
--- a/src/jarabe/journal/objectchooser.py
+++ b/src/jarabe/journal/objectchooser.py
@@ -20,6 +20,7 @@ import logging
import gobject
import gtk
import hippo
+import wnck
from sugar.graphics import style
from sugar.graphics.toolbutton import ToolButton
@@ -53,9 +54,15 @@ class ObjectChooser(gtk.Window):
self.__visibility_notify_event_cb)
self.connect('delete-event', self.__delete_event_cb)
self.connect('key-press-event', self.__key_press_event_cb)
- if parent is not None:
+
+ if parent is None:
+ logging.warning('ObjectChooser: No parent window specified')
+ else:
self.connect('realize', self.__realize_cb, parent)
+ screen = wnck.screen_get_default()
+ screen.connect('window-closed', self.__window_closed_cb, parent)
+
vbox = gtk.VBox()
self.add(vbox)
vbox.show()
@@ -96,6 +103,10 @@ class ObjectChooser(gtk.Window):
self.window.set_transient_for(parent)
# TODO: Should we disconnect the signal here?
+ def __window_closed_cb(self, screen, window, parent):
+ if window.get_xid() == parent.xid:
+ self.destroy()
+
def __entry_activated_cb(self, list_view, entry):
self._selected_object_id = entry.metadata['uid']
self.emit('response', gtk.RESPONSE_ACCEPT)