diff --git a/src/plugins/coreplugin/fancyactionbar.cpp b/src/plugins/coreplugin/fancyactionbar.cpp
index d0f7cf7013eb73c86e4729b59d3580f80a94e8bd..6fc39c6b33cf4f2e41bf53918b2d9d9f4b775ee9 100644
--- a/src/plugins/coreplugin/fancyactionbar.cpp
+++ b/src/plugins/coreplugin/fancyactionbar.cpp
@@ -77,27 +77,47 @@ FancyToolButton::FancyToolButton(QWidget *parent)
     , m_buttonElements(buttonElementsMap())
 {
     setAttribute(Qt::WA_Hover, true);
+    setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
 }
 
 void FancyToolButton::paintEvent(QPaintEvent *event)
 {
     Q_UNUSED(event)
     QPainter p(this);
+    QSize sh(sizeHint());
+    double scale = (double)height() / sh.height();
+    if (scale < 1) {
+        p.save();
+        p.scale(1, scale);
+    }
     p.drawPicture(0, 0, m_buttonElements.value(svgIdButtonBase));
     p.drawPicture(0, 0, m_buttonElements.value(isDown() ? svgIdButtonPressedBase : svgIdButtonNormalBase));
 #ifndef Q_WS_MAC // Mac UIs usually don't hover
     if (underMouse() && isEnabled())
         p.drawPicture(0, 0, m_buttonElements.value(svgIdButtonHoverOverlay));
 #endif
+
+    if (scale < 1)
+        p.restore();
+
     if (!icon().isNull()) {
         icon().paint(&p, rect());
     } else {
         const int margin = 4;
         p.drawText(rect().adjusted(margin, margin, -margin, -margin), Qt::AlignCenter | Qt::TextWordWrap, text());
+
+    }
+
+    if (scale < 1) {
+        p.scale(1, scale);
     }
-    if (!isEnabled())
+
+    if (isEnabled()) {
+        p.drawPicture(0, 0, m_buttonElements.value(isDown() ?
+                                                   svgIdButtonPressedOverlay : svgIdButtonNormalOverlay));
+    } else {
         p.drawPicture(0, 0, m_buttonElements.value(svgIdButtonDisabledOverlay));
-    p.drawPicture(0, 0, m_buttonElements.value(isDown() ? svgIdButtonPressedOverlay : svgIdButtonNormalOverlay));
+    }
 }
 
 void FancyActionBar::paintEvent(QPaintEvent *event)
@@ -110,6 +130,11 @@ QSize FancyToolButton::sizeHint() const
     return m_buttonElements.value(svgIdButtonBase).boundingRect().size();
 }
 
+QSize FancyToolButton::minimumSizeHint() const
+{
+    return QSize(8, 8);
+}
+
 FancyActionBar::FancyActionBar(QWidget *parent)
     : QWidget(parent)
 {
diff --git a/src/plugins/coreplugin/fancyactionbar.h b/src/plugins/coreplugin/fancyactionbar.h
index 927e42eb820c85a14eb29d6a1b655194f54fd313..6a7e1279901f882ae857244e427fc9dc956bce68 100644
--- a/src/plugins/coreplugin/fancyactionbar.h
+++ b/src/plugins/coreplugin/fancyactionbar.h
@@ -48,6 +48,7 @@ public:
 
     void paintEvent(QPaintEvent *event);
     QSize sizeHint() const;
+    QSize minimumSizeHint() const;
 
 private:
     const QMap<QString, QPicture> &m_buttonElements;
diff --git a/src/plugins/coreplugin/fancytabwidget.cpp b/src/plugins/coreplugin/fancytabwidget.cpp
index 918d138b3b49178b37d3fb308c6c21ee36b38e4a..aac67c8a2f4941c8bc1ef37b1ec1659ee32f7d08 100644
--- a/src/plugins/coreplugin/fancytabwidget.cpp
+++ b/src/plugins/coreplugin/fancytabwidget.cpp
@@ -305,12 +305,12 @@ FancyTabWidget::FancyTabWidget(QWidget *parent)
     bar->setFixedHeight(StyleHelper::navigationWidgetHeight());
     selectionLayout->addWidget(bar);
 
-    selectionLayout->addWidget(m_tabBar);
+    selectionLayout->addWidget(m_tabBar, 1);
     m_selectionWidget->setLayout(selectionLayout);
     m_selectionWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
 
     m_cornerWidgetContainer = new QWidget(this);
-    m_cornerWidgetContainer->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::MinimumExpanding);
+    m_cornerWidgetContainer->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
     m_cornerWidgetContainer->setAutoFillBackground(false);
 
     QVBoxLayout *cornerWidgetLayout = new QVBoxLayout;