Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2008-08-16 09:25:35 (GMT)
committer Jonas Smedegaard <dr@jones.dk>2008-08-16 09:25:35 (GMT)
commita87aa71821beadb0c094ad3a013ffa080b969bf6 (patch)
tree2e3f775ec9f3f3b4937dd168074f4bb21d77ae89 /python
parentae437e7c97695787b075a3b7000b9de48c72a38b (diff)
parent48a764911abd2f6d4906774e5ce197de8e6ee8ff (diff)
Merge commit 'v0.4.3' into upstream
Conflicts: components/.gitignore (dropped - confuses git-buildpackage)
Diffstat (limited to 'python')
-rw-r--r--python/webview.py19
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