diff --git a/src/plugins/coreplugin/fancyactionbar.cpp b/src/plugins/coreplugin/fancyactionbar.cpp
index 498773e9d58c165b477be8bc26b0e80f4d81acbc..14fe451198391b3b91b8c611d46862ebd4c15e29 100644
--- a/src/plugins/coreplugin/fancyactionbar.cpp
+++ b/src/plugins/coreplugin/fancyactionbar.cpp
@@ -58,13 +58,6 @@ FancyToolButton::FancyToolButton(QWidget *parent)
     setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
 }
 
-void FancySeparator::paintEvent(QPaintEvent *event)
-{
-    Q_UNUSED(event);
-    QPainter painter(this);
-    painter.fillRect(rect(), Qt::red);
-}
-
 bool FancyToolButton::event(QEvent *e)
 {
     switch(e->type()) {
@@ -99,41 +92,37 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
     bool isTitledAction = defaultAction()->property("titledAction").toBool();
 
 #ifndef Q_WS_MAC // Mac UIs usually don't hover
-    if (m_fader > 0 && isEnabled() && !isDown()) {
+    if (m_fader > 0 && isEnabled() && !isDown() && !isChecked()) {
         painter.save();
-        QColor whiteOverlay(Qt::white);
-        whiteOverlay.setAlpha(int(10 * m_fader));
-        QRect roundRect = rect().adjusted(5, 3, -5, -3);
-        painter.translate(0.5, 0.5);
-        painter.setRenderHint(QPainter::Antialiasing);
-        painter.setBrush(whiteOverlay);
-        whiteOverlay.setAlpha(int(20*m_fader));
-        painter.setPen(whiteOverlay);
-        painter.drawRoundedRect(roundRect, 3, 3);
+        int fader = int(40 * m_fader);
+        QLinearGradient grad(rect().topLeft(), rect().topRight());
+        grad.setColorAt(0, Qt::transparent);
+        grad.setColorAt(0.5, QColor(255, 255, 255, fader));
+        grad.setColorAt(1, Qt::transparent);
+        painter.fillRect(rect(), grad);
+        painter.setPen(QPen(grad, 1.0));
+        painter.drawLine(rect().topLeft(), rect().topRight());
+        painter.drawLine(rect().bottomLeft(), rect().bottomRight());
         painter.restore();
-    }
-#endif
 
+    } else
+#endif
     if (isDown() || isChecked()) {
         painter.save();
-        QColor color(Qt::black);
-        color.setAlpha(15);
-        QRect roundRect = rect().adjusted(5, 3, -5, -3);
-        painter.translate(0.5, 0.5);
-        painter.setRenderHint(QPainter::Antialiasing);
-        painter.setPen(QColor(255, 255, 255, 20));
-        static int rounding = 3;
-        painter.drawRoundedRect(roundRect.adjusted(-1, -1, 1, 1), rounding, rounding);
-        painter.setPen(QColor(0, 0, 0, 20));
-        painter.setBrush(QColor(0, 0, 0, 15));
-        painter.drawRoundedRect(roundRect.adjusted(1, 1, 0, 0), rounding, rounding);
-        color.setAlpha(75);
-        painter.setPen(color);
-        painter.setBrush(Qt::NoBrush);
-        painter.drawRoundedRect(roundRect, 3, 3);
+        QLinearGradient grad(rect().topLeft(), rect().topRight());
+        grad.setColorAt(0, Qt::transparent);
+        grad.setColorAt(0.5, QColor(0, 0, 0, 50));
+        grad.setColorAt(1, Qt::transparent);
+        painter.fillRect(rect(), grad);
+        painter.setPen(QPen(grad, 1.0));
+        painter.drawLine(rect().topLeft(), rect().topRight());
+        painter.drawLine(rect().topLeft(), rect().topRight());
+        painter.drawLine(rect().topLeft() + QPoint(0,1), rect().topRight() + QPoint(0,1));
+        painter.drawLine(rect().bottomLeft(), rect().bottomRight());
+        painter.drawLine(rect().bottomLeft(), rect().bottomRight());
+        painter.drawLine(rect().topLeft() - QPoint(0,1), rect().topRight() - QPoint(0,1));
         painter.restore();
     }
-
     QPixmap borderPixmap;
     QMargins margins;
 
@@ -192,6 +181,7 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
         opt.rect = rect().adjusted(rect().width() - 18, 0, -10, 0);
         Utils::StyleHelper::drawArrow(QStyle::PE_IndicatorArrowRight, &painter, &opt);
     }
+
 }
 
 void FancyActionBar::paintEvent(QPaintEvent *event)
diff --git a/src/plugins/coreplugin/fancyactionbar.h b/src/plugins/coreplugin/fancyactionbar.h
index cf986c102b2251ae466a2e7e6b0631ad944bad45..5f6e974e3d9b373b398c29b27e415a141b55ea03 100644
--- a/src/plugins/coreplugin/fancyactionbar.h
+++ b/src/plugins/coreplugin/fancyactionbar.h
@@ -63,22 +63,6 @@ private slots:
     void actionChanged();
 };
 
-class FancySeparator: public QWidget
-{
-    Q_OBJECT
-
-public:
-    FancySeparator(QWidget *parent = 0) :
-            QWidget(parent)
-    {
-        setMinimumHeight(2);
-        setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-    }
-    void paintEvent(QPaintEvent *event);
-};
-
-
-
 class FancyActionBar : public QWidget
 {
     Q_OBJECT
diff --git a/src/plugins/coreplugin/fancytabwidget.cpp b/src/plugins/coreplugin/fancytabwidget.cpp
index 4bfcdd626f82b924dbd6753a50270fbf0ed694ec..9336e464f29af28c307283b897734ad12287f06a 100644
--- a/src/plugins/coreplugin/fancytabwidget.cpp
+++ b/src/plugins/coreplugin/fancytabwidget.cpp
@@ -57,7 +57,7 @@ void FancyTab::fadeIn()
 {
     QPropertyAnimation *animation;
     animation = new QPropertyAnimation(this, "fader");
-    animation->setDuration(90);
+    animation->setDuration(70);
     animation->setEndValue(50);
     animation->start(QAbstractAnimation::DeleteWhenStopped);
 }
@@ -66,7 +66,7 @@ void FancyTab::fadeOut()
 {
     QPropertyAnimation *animation;
     animation = new QPropertyAnimation(this, "fader");
-    animation->setDuration(185);
+    animation->setDuration(200);
     animation->setEndValue(0);
     animation->start(QAbstractAnimation::DeleteWhenStopped);
 }
@@ -275,26 +275,6 @@ void FancyTabBar::paintTab(QPainter *painter, int tabIndex) const
         painter->drawLine(rect.bottomLeft(), rect.bottomRight());
         painter->setPen(QColor(255, 255, 255, 50));
         painter->drawLine(rect.bottomLeft() + QPoint(0,1), rect.bottomRight() + QPoint(0,1));
-    } else {
-        if (enabled) {
-            painter->save();
-            QColor whiteOverlay(Qt::white);
-            whiteOverlay.setAlpha(int(m_tabs[tabIndex]->fader()/2));
-            painter->fillRect(rect, whiteOverlay);
-            painter->setPen(whiteOverlay);
-            painter->drawLine(rect.topLeft(), rect.topRight());
-            painter->drawLine(rect.bottomLeft(), rect.bottomRight());
-
-            /*            QRect roundRect = rect.adjusted(5, 3, -5, -3);
-            painter->translate(0.5, 0.5);
-            painter->setRenderHint(QPainter::Antialiasing);
-            painter->setBrush(whiteOverlay);
-            whiteOverlay.setAlpha(int(m_tabs[tabIndex]->fader()));
-            painter->setPen(whiteOverlay);
-            painter->drawRoundedRect(roundRect, 3, 3);
-*/
-            painter->restore();
-      }
     }
 
     QString tabText(this->tabText(tabIndex));
@@ -314,12 +294,27 @@ void FancyTabBar::paintTab(QPainter *painter, int tabIndex) const
         painter->setPen(selected ? Utils::StyleHelper::panelTextColor() : QColor(255, 255, 255, 120));
     }
 
+    if (!selected && enabled) {
+        painter->save();
+        int fader = int(m_tabs[tabIndex]->fader());
+        QLinearGradient grad(rect.topLeft(), rect.topRight());
+        grad.setColorAt(0, Qt::transparent);
+        grad.setColorAt(0.5, QColor(255, 255, 255, fader));
+        grad.setColorAt(1, Qt::transparent);
+        painter->fillRect(rect, grad);
+        painter->setPen(QPen(grad, 1.0));
+        painter->drawLine(rect.topLeft(), rect.topRight());
+        painter->drawLine(rect.bottomLeft(), rect.bottomRight());
+        painter->restore();
+    }
+
     int textHeight = painter->fontMetrics().boundingRect(QRect(0, 0, width(), height()), Qt::TextWordWrap, tabText).height();
     tabIconRect.adjust(0, 4, 0, -textHeight);
     int iconSize = qMin(tabIconRect.width(), tabIconRect.height());
     if (iconSize > 4)
         style()->drawItemPixmap(painter, tabIconRect, Qt::AlignCenter | Qt::AlignVCenter,
                                 tabIcon(tabIndex).pixmap(tabIconRect.size(), enabled ? QIcon::Normal : QIcon::Disabled));
+
     painter->translate(0, -1);
     painter->drawText(tabTextRect, textFlags, tabText);
     painter->restore();