diff options
author | Tomeu Vizoso <tomeu@sugarlabs.org> | 2009-02-10 14:00:26 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@sugarlabs.org> | 2009-02-10 14:00:26 (GMT) |
commit | dec18e7bfd275925be2916177ae7c106f21a9f27 (patch) | |
tree | b7d9ca0592d1d0f1a1c48aec2fd27ad1f62470e0 /src | |
parent | 7115089fb00eb09211a44c104f2d4cba631f56d7 (diff) |
Close the object chooser when the activity is closed. #329
Diffstat (limited to 'src')
-rw-r--r-- | src/jarabe/journal/objectchooser.py | 13 |
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) |