diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2008-06-03 14:27:05 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2008-06-03 14:27:05 (GMT) |
commit | c6cbdc383e40eb82c7b0edf87d23e0f908ec5a52 (patch) | |
tree | a436d3d529ee2d87d17e0094a3171f0b5d7eb77b /filepicker.py | |
parent | c9f8d6f80ae2e112340a3af3ed92bb89d39889b8 (diff) |
Make the object chooser transient on the activity window.
Diffstat (limited to 'filepicker.py')
-rw-r--r-- | filepicker.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/filepicker.py b/filepicker.py index 0b7cb59..fe9fec5 100644 --- a/filepicker.py +++ b/filepicker.py @@ -29,6 +29,7 @@ from xpcom.server.factory import Factory from sugar.graphics.objectchooser import ObjectChooser _temp_files_to_clean = [] +_browser_window = None def cleanup_temp_files(): for temp_file in _temp_files_to_clean: @@ -55,20 +56,23 @@ class FilePicker: def init(self, parent, title, mode): self._title = title self._file = None + """ + Would be nice to get the window xid with something like this, but + couldn't find how. + cls = components.classes['@mozilla.org/embedcomp/window-watcher;1'] window_watcher = cls.getService(interfaces.nsIWindowWatcher) chrome = window_watcher.getChromeForWindow(parent) self._parent = chrome.web_view.get_toplevel() """ - self._parent = None + self._parent = _browser_window if mode != interfaces.nsIFilePicker.modeOpen: raise xpcom.COMException(NS_ERROR_NOT_IMPLEMENTED) def show(self): - chooser = ObjectChooser(self._title, self._parent, - gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT) + chooser = ObjectChooser(parent=self._parent) try: result = chooser.run() if result == gtk.RESPONSE_ACCEPT: @@ -145,3 +149,7 @@ components.registrar.registerFactory(FilePicker.cid, '@mozilla.org/filepicker;1', Factory(FilePicker)) +def init(main_window): + global _browser_window + _browser_window = main_window.get_toplevel() + |