Index: kicker/libkicker/panelbutton.cpp
===================================================================
--- kicker/libkicker/panelbutton.cpp	(revision 516673)
+++ kicker/libkicker/panelbutton.cpp	(working copy)
@@ -620,15 +620,15 @@
     }
     else if (!icon.isNull())
     {
-        int y = (height() - icon.height())/2;
-        int x = (width()  - icon.width() )/2;
+        int y = (height() - icon.height()) / 2;
+        int x = (width()  - icon.width()) / 2;
         p->drawPixmap(x, y, icon);
     }
 
-    if (m_drawArrow)
+    if (m_drawArrow && (m_highlight || active))
     {
         QStyle::PrimitiveElement e = QStyle::PE_ArrowUp;
-        QRect r(0, 0, 8, 8);
+        QRect r(width() / 2 - 4, 0, 8, 8);
 
         switch (m_arrowDirection)
         {
@@ -663,7 +663,7 @@
         }
 
         int flags = QStyle::Style_Enabled;
-        if (isDown() || isOn())
+        if (active)
         {
             flags |= QStyle::Style_Down;
         }
@@ -840,7 +840,6 @@
     m_pressedDuringPopup(false),
     m_initialized(false)
 {
-    setDrawArrow(true);
     connect(this, SIGNAL(pressed()), SLOT(slotExecMenu()));
 }
 
@@ -853,6 +852,7 @@
     }
 
     m_popup = popup;
+    setDrawArrow(m_popup != 0);
 
     if (m_popup)
     {
