From ca64c52accf34bfd6b3af2f246428f46ae3e2961 Mon Sep 17 00:00:00 2001 From: Manuel QuiƱones Date: Sun, 11 Sep 2011 13:33:23 +0000 Subject: Fix for Follow link in new tab Proper code, using signals, instead of adding a reference of TabbedView to Browse objects. Signed-off-by: Manuel QuiƱones Acked-by: Simon Schampijer --- (limited to 'browser.py') diff --git a/browser.py b/browser.py index eac9e6a..e1d8990 100644 --- a/browser.py +++ b/browser.py @@ -177,6 +177,7 @@ class TabbedView(BrowserNotebook): return browser.containerWindow else: browser = Browser() + browser.connect('new-tab', self.__new_tab_cb) self._append_tab(browser) return browser.browser.containerWindow @@ -192,8 +193,14 @@ class TabbedView(BrowserNotebook): self._update_closing_buttons() self._update_tab_sizes() + def __new_tab_cb(self, browser, url): + new_browser = self.add_tab(next_to_current=True) + new_browser.load_uri(url) + new_browser.grab_focus() + def add_tab(self, next_to_current=False): browser = Browser() + browser.connect('new-tab', self.__new_tab_cb) label = TabLabel(browser) label.connect('tab-close', self.__tab_close_cb) @@ -298,6 +305,7 @@ class TabbedView(BrowserNotebook): for tab_session in tab_sessions: browser = Browser() + browser.connect('new-tab', self.__new_tab_cb) self._append_tab(browser) sessionstore.set_session(browser, tab_session) @@ -384,6 +392,9 @@ class Browser(WebView): 'is-setup': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])), + 'new-tab': (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, + ([str])), } def __init__(self): @@ -474,6 +485,9 @@ class Browser(WebView): return self.web_navigation.gotoIndex(index) + def open_new_tab(self, url): + self.emit('new-tab', url) + class PopupDialog(gtk.Window): def __init__(self): -- cgit v0.9.1