Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/browser.py
diff options
context:
space:
mode:
Diffstat (limited to 'browser.py')
-rw-r--r--browser.py32
1 files changed, 21 insertions, 11 deletions
diff --git a/browser.py b/browser.py
index 39a697f..fec52f1 100644
--- a/browser.py
+++ b/browser.py
@@ -27,11 +27,13 @@ from xpcom.nsError import *
from xpcom import components
from xpcom.components import interfaces
from hulahop.webview import WebView
+from hulahop.webview import lookup_view
from sugar.datastore import datastore
from sugar import profile
from sugar import env
from sugar.activity import activity
+from sugar.graphics import style
import sessionstore
from palettes import ContentInvoker
@@ -212,28 +214,36 @@ class Browser(WebView):
interfaces.nsIMarkupDocumentViewer)
markupDocumentViewer.fullZoom -= _ZOOM_AMOUNT
-class XULDialog(gtk.Window):
+class PopupDialog(gtk.Window):
def __init__(self):
gtk.Window.__init__(self)
- self.view = WebView()
- self.add(self.view)
+ self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
- self.connect('realize', self.__realize_cb)
+ border = style.GRID_CELL_SIZE
+ self.set_default_size(gtk.gdk.screen_width() - border * 2,
+ gtk.gdk.screen_height() - border * 2)
- def __realize_cb(self, window):
- self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+ self.view = WebView()
+ self.add(self.view)
class WindowCreator:
_com_interfaces_ = interfaces.nsIWindowCreator
- def createChromeWindow(self, parent, chrome_flags):
- dialog = XULDialog()
+ def createChromeWindow(self, parent, flags):
+ dialog = PopupDialog()
+
+ parent_view = lookup_view(parent)
+ if parent_view:
+ dialog.set_transient_for(parent_view.get_toplevel())
+
browser = dialog.view.browser
- dialog.view.is_chrome = True
- item = browser.queryInterface(interfaces.nsIDocShellTreeItem)
- item.itemType = interfaces.nsIDocShellTreeItem.typeChromeWrapper
+ if flags & interfaces.nsIWebBrowserChrome.CHROME_OPENAS_CHROME:
+ dialog.view.is_chrome = True
+
+ item = browser.queryInterface(interfaces.nsIDocShellTreeItem)
+ item.itemType = interfaces.nsIDocShellTreeItem.typeChromeWrapper
return browser.containerWindow