┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphintabbar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dolphintabbar.cpp')
-rw-r--r--src/dolphintabbar.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/dolphintabbar.cpp b/src/dolphintabbar.cpp
index 55b5e5edf..4c918e611 100644
--- a/src/dolphintabbar.cpp
+++ b/src/dolphintabbar.cpp
@@ -13,6 +13,28 @@
#include <QMimeData>
#include <QTimer>
+class PreventFocusWhileHidden : public QObject
+{
+public:
+ PreventFocusWhileHidden(QObject *parent)
+ : QObject(parent){};
+
+protected:
+ bool eventFilter(QObject *obj, QEvent *ev) override
+ {
+ switch (ev->type()) {
+ case QEvent::Hide:
+ static_cast<QWidget *>(obj)->setFocusPolicy(Qt::NoFocus);
+ return false;
+ case QEvent::Show:
+ static_cast<QWidget *>(obj)->setFocusPolicy(Qt::TabFocus);
+ return false;
+ default:
+ return false;
+ }
+ };
+};
+
DolphinTabBar::DolphinTabBar(QWidget *parent)
: QTabBar(parent)
, m_autoActivationIndex(-1)
@@ -23,6 +45,9 @@ DolphinTabBar::DolphinTabBar(QWidget *parent)
setMovable(true);
setTabsClosable(true);
+ setFocusPolicy(Qt::NoFocus);
+ installEventFilter(new PreventFocusWhileHidden(this));
+
m_autoActivationTimer = new QTimer(this);
m_autoActivationTimer->setSingleShot(true);
m_autoActivationTimer->setInterval(800);