From 2cb1ae0ff2cb0fc7fcad6c936ce1e7cc3a08564f Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Thu, 24 Jul 2008 10:08:43 +0000 Subject: Open in the same page only _blank targets. Add a way lookup the view from the chrome. --- (limited to 'python') 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 -- cgit v0.9.1