┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Uwe Broulik <[email protected]>2017-02-13 13:20:07 +0100
committerKai Uwe Broulik <[email protected]>2017-02-13 13:20:07 +0100
commitf7770c60b17108fde8d4b15006a4e8347e85de7b (patch)
tree2136521ee7349de681d4130f1eb2275f991a12d3
parentd75b1de7bfeba76c540f6772e997aed4aacada88 (diff)
Close tab on mouse release rather than on mouse press
Differential Revision: https://phabricator.kde.org/D4501
-rw-r--r--src/dolphintabbar.cpp18
-rw-r--r--src/dolphintabbar.h2
2 files changed, 18 insertions, 2 deletions
diff --git a/src/dolphintabbar.cpp b/src/dolphintabbar.cpp
index e909c36ae..484a9f3a0 100644
--- a/src/dolphintabbar.cpp
+++ b/src/dolphintabbar.cpp
@@ -29,7 +29,8 @@
DolphinTabBar::DolphinTabBar(QWidget* parent) :
QTabBar(parent),
- m_autoActivationIndex(-1)
+ m_autoActivationIndex(-1),
+ m_tabToBeClosedOnMiddleMouseButtonRelease(-1)
{
setAcceptDrops(true);
setSelectionBehaviorOnRemove(QTabBar::SelectPreviousTab);
@@ -95,12 +96,25 @@ void DolphinTabBar::mousePressEvent(QMouseEvent* event)
const int index = tabAt(event->pos());
if (index >= 0 && event->button() == Qt::MiddleButton) {
+ m_tabToBeClosedOnMiddleMouseButtonRelease = index;
+ return;
+ }
+
+ QTabBar::mousePressEvent(event);
+}
+
+void DolphinTabBar::mouseReleaseEvent(QMouseEvent *event)
+{
+ const int index = tabAt(event->pos());
+
+ if (index >= 0 && index == m_tabToBeClosedOnMiddleMouseButtonRelease
+ && event->button() == Qt::MiddleButton) {
// Mouse middle click on a tab closes this tab.
emit tabCloseRequested(index);
return;
}
- QTabBar::mousePressEvent(event);
+ QTabBar::mouseReleaseEvent(event);
}
void DolphinTabBar::mouseDoubleClickEvent(QMouseEvent* event)
diff --git a/src/dolphintabbar.h b/src/dolphintabbar.h
index 6daa9a1ad..0c08031a9 100644
--- a/src/dolphintabbar.h
+++ b/src/dolphintabbar.h
@@ -40,6 +40,7 @@ protected:
virtual void dragMoveEvent(QDragMoveEvent* event) Q_DECL_OVERRIDE;
virtual void dropEvent(QDropEvent* event) Q_DECL_OVERRIDE;
virtual void mousePressEvent(QMouseEvent* event) Q_DECL_OVERRIDE;
+ virtual void mouseReleaseEvent(QMouseEvent* event) Q_DECL_OVERRIDE;
virtual void mouseDoubleClickEvent(QMouseEvent* event) Q_DECL_OVERRIDE;
/**
@@ -60,6 +61,7 @@ private:
private:
QTimer* m_autoActivationTimer;
int m_autoActivationIndex;
+ int m_tabToBeClosedOnMiddleMouseButtonRelease;
};
#endif // DOLPHIN_TAB_BAR_H