diff --git a/src/plugins/coreplugin/manhattanstyle.cpp b/src/plugins/coreplugin/manhattanstyle.cpp
index 4dd4ac6afae31920f57bb8740f1e49d5e336ddc5..ff4dbd16bea1665fd05e58f4d354ee49a41837ee 100644
--- a/src/plugins/coreplugin/manhattanstyle.cpp
+++ b/src/plugins/coreplugin/manhattanstyle.cpp
@@ -90,6 +90,9 @@ bool panelWidget(const QWidget *widget)
     if (qobject_cast<const Utils::FancyMainWindow *>(widget))
         return true;
 
+    if (qobject_cast<const QTabBar *>(widget))
+        return styleEnabled(widget);
+
     const QWidget *p = widget;
     while (p) {
         if (qobject_cast<const QToolBar *>(p) ||
@@ -270,8 +273,12 @@ void ManhattanStyle::polish(QWidget *widget)
             widget->setContentsMargins(0, 0, 0, 0);
         }
     }
-
     if (panelWidget(widget)) {
+
+        // Oxygen and possibly other styles override this
+        if (qobject_cast<QDockWidget*>(widget))
+            widget->setContentsMargins(0, 0, 0, 0);
+
         widget->setAttribute(Qt::WA_LayoutUsesWidgetRect, true);
         if (qobject_cast<QToolButton*>(widget)) {
             widget->setAttribute(Qt::WA_Hover);
@@ -621,7 +628,8 @@ void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *opt
 
         if (const QStyleOptionTabV3 *tab = qstyleoption_cast<const QStyleOptionTabV3 *>(option)) {
             QStyleOptionTabV3 adjustedTab = *tab;
-            if (tab->position == QStyleOptionTab::Beginning) {
+            if (tab->position == QStyleOptionTab::Beginning
+                || tab->position == QStyleOptionTab::OnlyOneTab) {
                 if (option->direction == Qt::LeftToRight)
                     adjustedTab.rect = adjustedTab.rect.adjusted(-1, 0, 0, 0);
                 else