Make tabbar style hack less intrusive

This commit is contained in:
Jonas Kvinge 2020-11-01 21:54:23 +01:00
parent e5eadd1315
commit 83a90e0c05
1 changed files with 12 additions and 1 deletions

View File

@ -422,7 +422,18 @@ class FancyTabWidgetProxyStyle : public QProxyStyle {
~FancyTabWidgetProxyStyle() override { common_style_->deleteLater(); }
QRect subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const override {
return common_style_->subElementRect(element, option, widget);
if (element == QStyle::SE_TabWidgetTabBar) {
QRect proxy_style_rect = QProxyStyle::subElementRect(element, option, widget);
QRect commonstyle_rect = common_style_->subElementRect(element, option, widget);
// Make the tabs align on top instead of the middle (macOS style hack).
if (proxy_style_rect.y() > 10) proxy_style_rect.setY(commonstyle_rect.y());
// Fix stretched tabbar (Fedora/Gnome style issue).
proxy_style_rect.setHeight(commonstyle_rect.height());
return proxy_style_rect;
}
else {
return QProxyStyle::subElementRect(element, option, widget);
}
}
private: