From c6cbdc383e40eb82c7b0edf87d23e0f908ec5a52 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Tue, 03 Jun 2008 14:27:05 +0000 Subject: Make the object chooser transient on the activity window. --- 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() + diff --git a/webactivity.py b/webactivity.py index c057735..4b4544a 100755 --- a/webactivity.py +++ b/webactivity.py @@ -70,6 +70,7 @@ from viewtoolbar import ViewToolbar import downloadmanager import sessionhistory import progresslistener +import filepicker _LIBRARY_PATH = '/usr/share/library-common/index.html' @@ -98,6 +99,7 @@ class WebActivity(activity.Activity): downloadmanager.init(self._browser, self, temp_path) sessionhistory.init(self._browser) progresslistener.init(self._browser) + filepicker.init(self) toolbox = activity.ActivityToolbox(self) -- cgit v0.9.1