summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Kamat <jaygkamat@gmail.com>2017-06-27 19:02:41 -0700
committerFlorian Bruhin <git@the-compiler.org>2017-07-13 11:03:22 +0200
commit91c5eff2c9869d922a33470e2995d0386ea4513f (patch)
treef8058e09e8f27670a30c278dee4c0b869a4f7d4e
parent0d704043ecaab52640ef83e6ecdc6b8581f679ee (diff)
downloadqutebrowser-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.py7
-rw-r--r--qutebrowser/mainwindow/tabbedbrowser.py4
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):