diff --git a/src/private/widgets/TabWidgetWidget.cpp b/src/private/widgets/TabWidgetWidget.cpp index 945cc38f..0e0405d6 100644 --- a/src/private/widgets/TabWidgetWidget.cpp +++ b/src/private/widgets/TabWidgetWidget.cpp @@ -88,6 +88,16 @@ void TabWidgetWidget::mouseDoubleClickEvent(QMouseEvent *ev) } } +void TabWidgetWidget::mousePressEvent(QMouseEvent *ev) +{ + QTabWidget::mousePressEvent(ev); + + if ((Config::self().flags() & Config::Flag_TitleBarIsFocusable) && !frame()->isFocused()) { + // User clicked on the tab widget itself + frame()->FocusScope::focus(Qt::MouseFocusReason); + } +} + void TabWidgetWidget::tabInserted(int) { onTabInserted(); diff --git a/src/private/widgets/TabWidgetWidget_p.h b/src/private/widgets/TabWidgetWidget_p.h index 5b1229ee..10073696 100644 --- a/src/private/widgets/TabWidgetWidget_p.h +++ b/src/private/widgets/TabWidgetWidget_p.h @@ -42,6 +42,7 @@ public: protected: void paintEvent(QPaintEvent *) override; void mouseDoubleClickEvent(QMouseEvent *) override; + void mousePressEvent(QMouseEvent *) override; void tabInserted(int index) override; void tabRemoved(int index) override; bool isPositionDraggable(QPoint p) const override;