diff --git a/src/plugins/VerticalTabs/tabtreeview.cpp b/src/plugins/VerticalTabs/tabtreeview.cpp index 568d14a37..77acea112 100644 --- a/src/plugins/VerticalTabs/tabtreeview.cpp +++ b/src/plugins/VerticalTabs/tabtreeview.cpp @@ -23,10 +23,12 @@ #include "webtab.h" #include "tabcontextmenu.h" #include "browserwindow.h" +#include "qzsettings.h" #include #include #include +#include TabTreeView::TabTreeView(BrowserWindow *window, QWidget *parent) : QTreeView(parent) @@ -161,6 +163,10 @@ void TabTreeView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bot if (roles.size() == 1 && roles.at(0) == TabModel::CurrentTabRole && topLeft.data(TabModel::CurrentTabRole).toBool()) { setCurrentIndex(topLeft); + + if (qzSettings->alwaysSwitchTabsWithWheel && verticalScrollBar()->isVisible()) { + scrollTo(indexAbove(topLeft)); + } } } @@ -335,6 +341,13 @@ bool TabTreeView::viewportEvent(QEvent *event) break; } + case QEvent::Wheel: { + if (qzSettings->alwaysSwitchTabsWithWheel) { + event->ignore(); + return false; + } + } + default: break; } diff --git a/src/plugins/VerticalTabs/verticaltabswidget.cpp b/src/plugins/VerticalTabs/verticaltabswidget.cpp index d3d54547e..6d78dc78b 100644 --- a/src/plugins/VerticalTabs/verticaltabswidget.cpp +++ b/src/plugins/VerticalTabs/verticaltabswidget.cpp @@ -26,6 +26,7 @@ #include "toolbutton.h" #include "tabtreemodel.h" #include "browserwindow.h" +#include "qzsettings.h" #include #include @@ -159,7 +160,7 @@ WebTab *VerticalTabsWidget::previousTab() const void VerticalTabsWidget::wheelEvent(QWheelEvent *event) { - if (m_normalView->verticalScrollBar()->isVisible()) { + if (!qzSettings->alwaysSwitchTabsWithWheel && m_normalView->verticalScrollBar()->isVisible()) { return; }