diff options
author | Jonas Smedegaard <dr@jones.dk> | 2008-08-16 09:25:35 (GMT) |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2008-08-16 09:25:35 (GMT) |
commit | a87aa71821beadb0c094ad3a013ffa080b969bf6 (patch) | |
tree | 2e3f775ec9f3f3b4937dd168074f4bb21d77ae89 /python | |
parent | ae437e7c97695787b075a3b7000b9de48c72a38b (diff) | |
parent | 48a764911abd2f6d4906774e5ce197de8e6ee8ff (diff) |
Merge commit 'v0.4.3' into upstream
Conflicts:
components/.gitignore (dropped - confuses git-buildpackage)
Diffstat (limited to 'python')
-rw-r--r-- | python/webview.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/python/webview.py b/python/webview.py index 6b0af57..b4dc51f 100644 --- a/python/webview.py +++ b/python/webview.py @@ -25,6 +25,8 @@ from xpcom import components from xpcom.components import interfaces from xpcom.nsError import * +_views = [] + class _Chrome: _com_interfaces_ = interfaces.nsIWebBrowserChrome, \ interfaces.nsIWebBrowserChrome2, \ @@ -41,7 +43,10 @@ class _Chrome: def provideWindow(self, parent, flags, position_specified, size_specified, uri, name, features): - return parent, False + if name == "_blank": + return parent, False + else: + return None, False # nsIWebBrowserChrome def destroyBrowserWindow(self): @@ -223,6 +228,13 @@ class WebView(_hulahop.WebView): self.create_window() + self.connect('destroy', self.__destroy_cb) + + _views.append(self) + + def __destroy_cb(self): + _views.remove(self) + def _notify_title_changed(self): self.notify('title') @@ -267,3 +279,8 @@ class WebView(_hulahop.WebView): web_progress = property(get_web_progress) web_navigation = property(get_web_navigation) +def lookup_view(chrome): + for view in _views: + if view._chrome == chrome: + return view + return None |