--- kdebase/kicker/kicker/buttons/knewbutton.cpp.ORI	2011-12-08 21:15:57.551323941 +0100
+++ kdebase/kicker/kicker/buttons/knewbutton.cpp	2011-12-08 21:22:05.216346827 +0100
@@ -55,26 +55,26 @@
     : KButton( parent ),
       m_oldPos(0,0)
 {
+	setTitle(i18n("K Menu"));
     Q_ASSERT( !m_self );
     m_self = this;
-    m_hoverTimer = -1;
     m_openTimer = -1;
-    m_active = false;
+    m_hoverTimer = -1;
     m_mouseInside = false;
     m_drag = false;
 
-    setIconAlignment((Qt::AlignmentFlags)(AlignTop|AlignRight));
-    setAcceptDrops(true);
-    setIcon("kmenu-suse");
-    setDrawArrow(false);
-
-    m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_basic.mng"));
-    m_movie->connectUpdate(this, TQT_SLOT(updateMovie()));
-    m_movie->connectStatus(this, TQT_SLOT(slotStatus(int)));
-    m_movie->connectResize(this, TQT_SLOT(slotSetSize(const TQSize&)));
+    setIcon("kmenu");
+    setIcon(KickerSettings::customKMenuIcon());
 
     TQApplication::desktop()->screen()->installEventFilter(this);
-    setMouseTracking(true);
+    if (KickerSettings::showKMenuText())
+    {
+        setButtonText(KickerSettings::kMenuText());
+        setFont(KickerSettings::buttonFont());
+        setTextColor(KickerSettings::buttonTextColor());
+    }    
+    
+    repaint();
 }
 
 KNewButton::~KNewButton()
@@ -82,28 +82,14 @@
     if ( m_self == this )
         m_self = 0;
     setMouseTracking(false);
-    delete m_movie;
-}
-
-void KNewButton::slotStatus(int status)
-{
-    if(status == TQMovie::EndOfLoop)
-        slotStopAnimation();
 }
 
-TQColor KNewButton::borderColor() const
+void KNewButton::drawButton(TQPainter *p)
 {
-    TQImage img = m_active_pixmap.convertToImage();
-
-    for (int i = 0; i < img.width(); ++i) {
-        QRgb rgb = img.pixel(orientation() == Qt::Horizontal ? img.width() - i - 1 :
-                    i, 2);
-
-        if (qGreen(rgb) > 0x50)
-            return rgb;
-    }
-
-    return img.pixel( orientation() == Qt::Horizontal ? img.width() - 2 : 2, 2);
+    //if (KickerSettings::showDeepButtons())
+    //    PanelPopupButton::drawDeepButton(p);
+    //else
+        PanelPopupButton::drawButton(p);
 }
 
 void KNewButton::show()
@@ -111,103 +97,12 @@
      KButton::show();
 
      if (KickerSettings::firstRun()) {
-         TQTimer::singleShot(500,this,TQT_SLOT(slotExecMenu()));
+         TQTimer::singleShot(0,this,TQT_SLOT(slotExecMenu()));
          KickerSettings::setFirstRun(false);
          KickerSettings::writeConfig();
      }
 }
 
-void KNewButton::updateMovie()
-{
-    m_oldPos = TQPoint( -1, -1 );
-    drawEye();
-
-    if (!m_active && m_movie->running())
-        m_movie->pause();
-}
-
-void KNewButton::setPopupDirection(KPanelApplet::Direction d)
-{
-    KButton::setPopupDirection(d);
-
-    delete m_movie;
-
-    switch (d) {
-    case KPanelApplet::Left:
-        setIconAlignment((Qt::AlignmentFlags)(AlignTop|AlignLeft));
-        m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_vertical.mng"));
-        break;
-    case KPanelApplet::Right:
-        setIconAlignment((Qt::AlignmentFlags)(AlignTop|AlignRight));
-        m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_vertical.mng"));
-        break;
-    case KPanelApplet::Up:
-        setIconAlignment((Qt::AlignmentFlags)(AlignTop|AlignHCenter));
-        m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_basic.mng"));
-        break;
-    case KPanelApplet::Down:
-        setIconAlignment((Qt::AlignmentFlags)(AlignBottom|AlignHCenter));
-        m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_flipped.mng"));
-    }
-
-    m_movie->connectUpdate(this, TQT_SLOT(updateMovie()));
-    m_movie->connectStatus(this, TQT_SLOT(slotStatus(int)));
-    m_movie->connectResize(this, TQT_SLOT(slotSetSize(const TQSize&)));
-}
-
-void KNewButton::slotSetSize(const TQSize& s)
-{
-    m_iconSize = s;
-}
-
-double KNewButton::buttonScaleFactor(const TQSize& s) const
-{
-    double sf = 1.0;
-
-    switch (popupDirection()) {
-        case KPanelApplet::Left:
-        case KPanelApplet::Right:
-//            sf = kMin(double(s.width()) / m_iconSize.height(), double(s.height()) / m_iconSize.width());
-//            break;
-        case KPanelApplet::Up:
-        case KPanelApplet::Down:
-            sf = kMin(double(s.width()) / m_iconSize.width(), double(s.height()) / m_iconSize.height());
-            break;
-    }
-
-    if (sf > 0.8) sf = 1.0;
-    return sf;
-}
-
-int KNewButton::widthForHeight(int height) const
-{
-    int r = m_iconSize.width() * buttonScaleFactor(TQSize(m_iconSize.width(), height));
-
-    if (!m_movie->running() && height != m_active_pixmap.height())
-    {
-        KNewButton* that = const_cast<KNewButton*>(this);
-        TQTimer::singleShot(0, that, TQT_SLOT(slotStopAnimation()));
-    }
- 
-    return r;
-}
-
-int KNewButton::preferredDimension(int panelDim) const
-{
-    return kMax(m_icon.width(), m_icon.height());
-}
-
-int KNewButton::heightForWidth(int width) const
-{
-    int r = m_iconSize.width() * buttonScaleFactor(TQSize(width, m_iconSize.height()));
-    if (!m_movie->running() && width != m_active_pixmap.width())
-    {
-        KNewButton* that = const_cast<KNewButton*>(this);
-        TQTimer::singleShot(0, that, TQT_SLOT(slotStopAnimation()));
-    }
-    return r;
-}
-
 bool KNewButton::eventFilter(TQObject *o, TQEvent *e)
 {
     if (e->type() == TQEvent::MouseButtonRelease ||
@@ -223,75 +118,9 @@
         }
     }
 
-    if (KickerSettings::kickoffDrawGeekoEye() && e->type() == TQEvent::MouseMove)
-    {
-        TQMouseEvent *me = static_cast<TQMouseEvent *>(e);
-        if ((me->state() & MouseButtonMask) == NoButton) 
-            drawEye();
-    }
-
     return KButton::eventFilter(o, e);
 }
 
-void KNewButton::drawEye()
-{
-#define eye_x 62
-#define eye_y 13
-    TQPoint mouse = TQCursor::pos();
-    TQPoint me = mapToGlobal(TQPoint(eye_x, eye_y));
-    double a = atan2(mouse.y() - me.y(), mouse.x() - me.x());
-    int dx = int(2.1 * cos(a));
-    int dy = int(2.1 * sin(a));
-
-    TQPoint newpos(eye_x+dx,eye_y+dy);
-    if (newpos!=m_oldPos) {
-        m_oldPos = newpos;
-        TQPixmap pixmap = m_active_pixmap;
-
-        double sf = 1.0;
-
-        if(!m_movie->framePixmap().isNull())
-        {
-            pixmap = m_movie->framePixmap();
-            pixmap.detach();
-            m_iconSize = pixmap.size();
-            sf = buttonScaleFactor(size());
-
-            if (KickerSettings::kickoffDrawGeekoEye()) {
-               TQPainter p(&pixmap);
-               p.setPen(white);
-               p.setBrush(white);
-               //      p.setPen(TQColor(110,185,55));
-               p.drawRect(eye_x+dx, eye_y+dy, 2, 2);
-               p. end();
-            }
-        }
-
-        TQWMatrix matrix;
-        switch (popupDirection()) {
-        case KPanelApplet::Left:
-            matrix.scale(sf, -sf);
-            matrix.rotate(90);
-            break;
-        case KPanelApplet::Up:
-            matrix.scale(sf, sf);
-            break;
-        case KPanelApplet::Right:
-            matrix.scale(sf, -sf);
-            matrix.rotate(90);
-            break;
-        case KPanelApplet::Down:
-            matrix.scale(sf, sf);
-            break;
-        }
-        m_active_pixmap = pixmap.xForm(matrix);
-
-        repaint(false);
-    }
-#undef eye_x
-#undef eye_y
-}
-
 void KNewButton::enterEvent(TQEvent* e)
 {
     KButton::enterEvent(e);
@@ -315,14 +144,6 @@
     }
 
     m_active = true;
-    m_movie->unpause();
-    m_movie->restart();
-}
-
-void KNewButton::rewindMovie()
-{
-    m_oldPos = TQPoint( -1, -1 );
-    m_movie->unpause();
 }
 
 void KNewButton::dragEnterEvent(TQDragEnterEvent* /*e*/)
@@ -369,31 +190,11 @@
     }
 }
 
-void KNewButton::slotStopAnimation()
-{
-    m_active = false;
-    m_movie->pause();
-    m_movie->restart();
-    TQTimer::singleShot(200, this, TQT_SLOT(rewindMovie()));
-}
-
-const TQPixmap& KNewButton::labelIcon() const
-{
-    return m_active_pixmap;
-}
-
 void KNewButton::slotExecMenu()
 {
-    if (m_openTimer != -1)
-        killTimer(m_openTimer);
-
-    m_openTimer = startTimer(TQApplication::doubleClickInterval() * 3);
-
     if (m_active)
     {
         m_active = false;
-        m_movie->pause();
-        m_movie->restart();
     }
 
     KButton::slotExecMenu();
@@ -401,40 +202,11 @@
     assert(!KickerTip::tippingEnabled());
     assert(dynamic_cast<KMenu*>(m_popup));
 
-    disconnect(dynamic_cast<KMenu*>(m_popup), TQT_SIGNAL(aboutToHide()), this,
-            TQT_SLOT(slotStopAnimation()));
-    connect(dynamic_cast<KMenu*>(m_popup), TQT_SIGNAL(aboutToHide()),
-            TQT_SLOT(slotStopAnimation()));
-
     m_popup->move(KickerLib::popupPosition(popupDirection(), m_popup, this));
     // I wish KMenu would properly done itself when it closes. But it doesn't.
 
-    bool useEffect = true; // could be TQApplication::isEffectEnabled()
-    useEffect = false; // too many TQt bugs to be useful
-    if (m_drag)
-	useEffect = false;
-
     m_drag = false; // once is enough
-
-    if (useEffect) 
-    {
-        switch (popupDirection()) {
-        case KPanelApplet::Left:
-            qScrollEffect(m_popup, QEffects::LeftScroll);
-            break;
-        case KPanelApplet::Up:
-            qScrollEffect(m_popup, QEffects::UpScroll);
-            break;
-        case KPanelApplet::Right:
-            qScrollEffect(m_popup, QEffects::RightScroll);
-            break;
-        case KPanelApplet::Down:
-            qScrollEffect(m_popup, QEffects::DownScroll);
-            break;
-        }
-    }
-    else
-        static_cast<KMenu*>(m_popup)->show();
+    static_cast<KMenu*>(m_popup)->show();
 }
 
 void KNewButton::timerEvent(TQTimerEvent* e)
@@ -447,9 +219,4 @@
         killTimer(m_hoverTimer);
         m_hoverTimer = -1;
     }
-    if (e->timerId() == m_openTimer)
-    {
-        killTimer(m_openTimer);
-        m_openTimer = -1;
-    }
 }
--- kdebase/kicker/kicker/buttons/knewbutton.h.ORI	2011-12-08 21:22:24.273573281 +0100
+++ kdebase/kicker/kicker/buttons/knewbutton.h	2011-12-08 21:24:16.791338762 +0100
@@ -28,7 +28,6 @@
 
 #include "kbutton.h"
 
-#include <tqmovie.h>
 #include <tqpoint.h>
 
 /**
@@ -46,23 +45,8 @@
 
     void loadConfig( const KConfigGroup& config );
 
-    virtual const TQPixmap& labelIcon() const;
-
-    virtual int widthForHeight(int height) const;
-    virtual int preferredDimension(int panelDim) const;
-    virtual int heightForWidth(int width) const;
-
     TQColor borderColor() const;
 
-    virtual void setPopupDirection(KPanelApplet::Direction d);
-
-private slots:
-    void slotStatus(int);
-    void slotSetSize(const TQSize&);
-    void slotStopAnimation();
-    void rewindMovie();
-    void updateMovie();
-
 protected:
     virtual void show();
     virtual void slotExecMenu();
@@ -78,16 +62,13 @@
     void timerEvent(TQTimerEvent*);
 
 private:
-    void drawEye();
-    double buttonScaleFactor(const TQSize& s) const;
-
-    TQMovie* m_movie;
+	void drawButton(TQPainter *p);
     TQPixmap m_active_pixmap;
     TQPoint m_oldPos;
     TQSize m_iconSize;
     TQRect m_sloppyRegion;
-    int m_hoverTimer;
     int m_openTimer;
+    int m_hoverTimer;
     bool m_active;
     bool m_mouseInside;
     bool m_drag;
--- kdebase/kicker/kicker/ui/k_new_mnu.cpp.ORI	2011-12-08 21:24:57.071572016 +0100
+++ kdebase/kicker/kicker/ui/k_new_mnu.cpp	2011-12-08 21:25:54.300324465 +0100
@@ -1700,8 +1700,6 @@
         TQPixmap pix( 64, footer->height() );
         TQPainter p( &pix );
         p.fillRect( 0, 0, 64, footer->height(), m_branding->colorGroup().brush( TQColorGroup::Base ) );
-        p.fillRect( 0, m_orientation == BottomUp ? footer->height() - 2 : 0,
-                64, 3, KNewButton::self()->borderColor() );
         p.end();
         footer->setPaletteBackgroundPixmap( pix );
     }
@@ -3501,6 +3499,8 @@
         m_systemView->insertItem( iconName, userLabel.isEmpty() ? label : userLabel,
                                   descr, "system:/media/" + name, nId++, -1 );
 
+        ++it;
+        ++it;
         ++it; // skip separator
     }
 }