From 3a37532efabe118642e685028bc6ffadfe7806f9 Mon Sep 17 00:00:00 2001 From: toofar Date: Sun, 10 Sep 2023 17:32:57 +1200 Subject: Merge pull request #7888 from brightonanc/timer-repairs Fixing timers accumulating duplicate slots (cherry picked from commit 923d327c04a8650f582c03c657dc1717d9e6876c) --- qutebrowser/browser/webengine/webenginetab.py | 4 ++-- qutebrowser/keyinput/modeparsers.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 54c576ebf..938e100ff 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -816,6 +816,8 @@ class WebEngineAudio(browsertab.AbstractAudio): page.recentlyAudibleChanged.connect(self._delayed_recently_audible_changed) self._tab.url_changed.connect(self._on_url_changed) config.instance.changed.connect(self._on_config_changed) + self._silence_timer.timeout.connect(functools.partial( + self.recently_audible_changed.emit, False)) # WORKAROUND for recentlyAudibleChanged being emitted without delay from the moment # that audio is dropped. @@ -831,8 +833,6 @@ class WebEngineAudio(browsertab.AbstractAudio): # Ignore all subsequent calls while the tab is muted with an active timer if timer.isActive(): return - timer.timeout.connect( - functools.partial(self.recently_audible_changed.emit, recently_audible)) timer.start() def set_muted(self, muted: bool, override: bool = False) -> None: diff --git a/qutebrowser/keyinput/modeparsers.py b/qutebrowser/keyinput/modeparsers.py index fdb085a1f..7db169097 100644 --- a/qutebrowser/keyinput/modeparsers.py +++ b/qutebrowser/keyinput/modeparsers.py @@ -84,6 +84,7 @@ class NormalKeyParser(CommandKeyParser): self._inhibited = False self._inhibited_timer = usertypes.Timer(self, 'normal-inhibited') self._inhibited_timer.setSingleShot(True) + self._inhibited_timer.timeout.connect(self._clear_inhibited) def __repr__(self) -> str: return utils.get_repr(self) @@ -113,7 +114,6 @@ class NormalKeyParser(CommandKeyParser): timeout)) self._inhibited = True self._inhibited_timer.setInterval(timeout) - self._inhibited_timer.timeout.connect(self._clear_inhibited) self._inhibited_timer.start() @pyqtSlot() -- cgit v1.2.3-54-g00ecf