Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2008-06-03 14:27:05 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2008-06-03 14:27:05 (GMT)
commitc6cbdc383e40eb82c7b0edf87d23e0f908ec5a52 (patch)
treea436d3d529ee2d87d17e0094a3171f0b5d7eb77b
parentc9f8d6f80ae2e112340a3af3ed92bb89d39889b8 (diff)
Make the object chooser transient on the activity window.
-rw-r--r--filepicker.py14
-rwxr-xr-xwebactivity.py2
2 files changed, 13 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()
+
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)