From 2bbd5c6814436a4b6d77c492f528eff27d6df143 Mon Sep 17 00:00:00 2001 From: pazos Date: Fri, 11 May 2018 22:30:40 +0200 Subject: ctrl+shift+tab, switch pages in Leftpanel reverse order --- filter.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'filter.cpp') diff --git a/filter.cpp b/filter.cpp index fba9c3eb..3ba011bf 100644 --- a/filter.cpp +++ b/filter.cpp @@ -34,13 +34,20 @@ filter::filter(QObject *parent) : QObject(parent) { m_tabPressed = false; + m_backtabPressed = false; } bool filter::eventFilter(QObject *obj, QEvent *ev) { switch(ev->type()) { case QEvent::KeyPress: { QKeyEvent *ke = static_cast(ev); - if(ke->key() == Qt::Key_Tab || ke->key() == Qt::Key_Backtab) { + if(ke->key() == Qt::Key_Backtab) { + if(m_backtabPressed) + break; + else m_backtabPressed = true; + } + + if(ke->key() == Qt::Key_Tab) { if(m_tabPressed) break; else m_tabPressed = true; @@ -58,7 +65,7 @@ bool filter::eventFilter(QObject *obj, QEvent *ev) { sks = ks.toString(); } #ifndef Q_OS_MAC - if(sks.contains("Alt+Tab") || sks.contains("Alt+Shift+Backtab")) + if(sks.contains("Alt+Tab") || sks.contains("Alt+Backtab")) break; #else sks.replace("Meta", "Ctrl"); @@ -67,7 +74,11 @@ bool filter::eventFilter(QObject *obj, QEvent *ev) { } break; case QEvent::KeyRelease: { QKeyEvent *ke = static_cast(ev); - if(ke->key() == Qt::Key_Tab || ke->key() == Qt::Key_Backtab) + + if(ke->key() == Qt::Key_Backtab) + m_backtabPressed = false; + + if(ke->key() == Qt::Key_Tab) m_tabPressed = false; QString sks; @@ -88,7 +99,7 @@ bool filter::eventFilter(QObject *obj, QEvent *ev) { sks = ks.toString(); } #ifndef Q_OS_MAC - if(sks.contains("Alt+Tab") || sks.contains("Alt+Shift+Backtab")) + if(sks.contains("Alt+Tab") || sks.contains("Alt+Backtab")) break; #else sks.replace("Meta", "Ctrl"); -- cgit v1.2.3