diff options
author | Jay Kamat <jaygkamat@gmail.com> | 2017-06-27 19:02:41 -0700 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2017-07-13 11:03:22 +0200 |
commit | 91c5eff2c9869d922a33470e2995d0386ea4513f (patch) | |
tree | f8058e09e8f27670a30c278dee4c0b869a4f7d4e | |
parent | 0d704043ecaab52640ef83e6ecdc6b8581f679ee (diff) | |
download | qutebrowser-91c5eff2c9869d922a33470e2995d0386ea4513f.tar.gz qutebrowser-91c5eff2c9869d922a33470e2995d0386ea4513f.zip |
Prompt when closing a pinned tab via the mouse
Closes #2761
(cherry picked from commit 4d1dbe11e89ab3cffd5477a5edfdfed3db8b7650)
-rw-r--r-- | qutebrowser/browser/commands.py | 7 | ||||
-rw-r--r-- | qutebrowser/mainwindow/tabbedbrowser.py | 4 |
2 files changed, 7 insertions, 4 deletions
diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 804ad4e6a..ac99c9347 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -228,7 +228,8 @@ class CommandDispatcher: self._tabbed_browser.close_tab(tab) tabbar.setSelectionBehaviorOnRemove(old_selection_behavior) - def _tab_close_prompt_if_pinned(self, tab, force, yes_action): + @staticmethod + def tab_close_prompt_if_pinned(tab, force, yes_action): """Helper method for tab_close. If tab is pinned, prompt. If everything is good, run yes_action. @@ -261,7 +262,7 @@ class CommandDispatcher: close = functools.partial(self._tab_close, tab, prev, next_, opposite) - self._tab_close_prompt_if_pinned(tab, force, close) + CommandDispatcher.tab_close_prompt_if_pinned(tab, force, close) @cmdutils.register(instance='command-dispatcher', scope='window', name='tab-pin') @@ -928,7 +929,7 @@ class CommandDispatcher: if not force: for i, tab in enumerate(self._tabbed_browser.widgets()): if _to_close(i) and tab.data.pinned: - self._tab_close_prompt_if_pinned( + CommandDispatcher.tab_close_prompt_if_pinned( tab, force, lambda: self.tab_only( prev=prev, next_=next_, force=True)) diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py index 94508ab63..600b2814d 100644 --- a/qutebrowser/mainwindow/tabbedbrowser.py +++ b/qutebrowser/mainwindow/tabbedbrowser.py @@ -26,6 +26,7 @@ from PyQt5.QtWidgets import QSizePolicy from PyQt5.QtCore import pyqtSignal, pyqtSlot, QTimer, QUrl, QSize from PyQt5.QtGui import QIcon +from qutebrowser.browser.commands import CommandDispatcher from qutebrowser.config import config from qutebrowser.keyinput import modeman from qutebrowser.mainwindow import tabwidget @@ -366,7 +367,8 @@ class TabbedBrowser(tabwidget.TabWidget): log.webview.debug("Got invalid tab {} for index {}!".format( tab, idx)) return - self.close_tab(tab) + CommandDispatcher.tab_close_prompt_if_pinned( + tab, False, lambda: self.close_tab(tab)) @pyqtSlot(browsertab.AbstractTab) def on_window_close_requested(self, widget): |