From 1134461953424bffd62217830528beb5ff3bc801 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 11 Feb 2014 13:27:26 +0100 Subject: [PATCH] Make it possible to ignore signals for cache. --- qutebrowser/widgets/browser.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/qutebrowser/widgets/browser.py b/qutebrowser/widgets/browser.py index 357e90d27..265be0134 100644 --- a/qutebrowser/widgets/browser.py +++ b/qutebrowser/widgets/browser.py @@ -410,15 +410,19 @@ class TabbedBrowser(TabWidget): logging.warn('Got signal {} by {} which is no tab!'.format( dbg_signal(signal, args), sender)) return - if signal.signal in sender.signal_cache: + if (signal.signal in sender.signal_cache and + self._signal_needs_caching(signal)): if log_signal: logging.debug(" Moving to the end of signal cache") sender.signal_cache[signal.signal] = (signal, args) sender.signal_cache.move_to_end(signal.signal) - else: + elif self._signal_needs_caching(signal): if log_signal: logging.debug(" Adding to signal cache") sender.signal_cache[signal.signal] = (signal, args) + else: + if log_signal: + logging.debug(" Ignoring for signal cache") if self.currentWidget() == sender: if log_signal: logging.debug(' emitting') @@ -447,6 +451,11 @@ class TabbedBrowser(TabWidget): sender))) sender.signal_cache.clear() + def _signal_needs_caching(self, signal): + """Return True if a signal should be cached, false otherwise.""" + ignore_signals = [] + return not signal_name(signal) in ignore_signals + class BrowserTab(QWebView):