diff --git a/kde/src/CallView.cpp b/kde/src/CallView.cpp
index d27e34e8dd205f5f6c038089c8569a40cdcd4f76..e4484c904342da63282813a6d7d2e37e83d51793 100644
--- a/kde/src/CallView.cpp
+++ b/kde/src/CallView.cpp
@@ -692,3 +692,68 @@ void CallView::clearHistory()
 void CallView::keyPressEvent(QKeyEvent* event) {
    SFLPhone::app()->view()->keyPressEvent(event);
 }
+
+
+/*****************************************************************************
+ *                                                                           *
+ *                                 Overlay                                   *
+ *                                                                           *
+ ****************************************************************************/
+
+///Constructor
+CallViewOverlay::CallViewOverlay(QWidget* parent) : QWidget(parent),m_pIcon(0),m_pTimer(0),m_enabled(true),m_black("black")
+{
+   m_black.setAlpha(75);
+}
+
+///Add a widget (usually an icon) in the corner
+void CallViewOverlay::setCornerWidget(QWidget* wdg) {
+   wdg->setParent      ( this                       );
+   wdg->setMinimumSize ( 100         , 100          );
+   wdg->resize         ( 100         , 100          );
+   wdg->move           ( width()-100 , height()-100 );
+   m_pIcon = wdg;
+}
+
+///Overload the setVisible method to trigger the timer
+void CallViewOverlay::setVisible(bool enabled) {
+   if (m_enabled != enabled) {
+      if (m_pTimer) {
+         m_pTimer->stop();
+         disconnect(m_pTimer);
+      }
+      m_pTimer = new QTimer(this); //TODO LEAK?
+      connect(m_pTimer, SIGNAL(timeout()), this, SLOT(changeVisibility()));
+      m_step = 0;
+      m_black.setAlpha(0);
+      repaint();
+      m_pTimer->start(10);
+   }
+   m_enabled = enabled;
+   QWidget::setVisible(enabled);
+}
+
+///How to paint the overlay
+void CallViewOverlay::paintEvent(QPaintEvent* event) {
+   Q_UNUSED(event)
+   QPainter customPainter(this);
+   customPainter.fillRect(rect(),m_black);
+}
+
+///Be sure the event is always the right size
+void CallViewOverlay::resizeEvent(QResizeEvent *e) {
+   Q_UNUSED(e)
+   if (m_pIcon) {
+      m_pIcon->setMinimumSize(100,100);
+      m_pIcon->move(width()-100,height()-100);
+   }
+}
+
+///Step by step animation to fade in/out
+void CallViewOverlay::changeVisibility() {
+   m_step++;
+   m_black.setAlpha(0.1*m_step*m_step);
+   repaint();
+   if (m_step >= 35)
+      m_pTimer->stop();
+}
\ No newline at end of file
diff --git a/kde/src/CallView.h b/kde/src/CallView.h
index 9d333c46a4ffae2e6bcdc0dfdcb98ec0f5aa3ab8..0d05fa7fcdd2fe83666925934da74759a46d3651 100644
--- a/kde/src/CallView.h
+++ b/kde/src/CallView.h
@@ -56,62 +56,26 @@ class CallTreeItemDelegate : public QItemDelegate
 class CallViewOverlay : public QWidget {
    Q_OBJECT
 public:
-   CallViewOverlay(QWidget* parent) : QWidget(parent),m_pIcon(0),m_pTimer(0),m_enabled(true),black("black")
-   {
-      black.setAlpha(75);
-   }
-   void setCornerWidget(QWidget* wdg) {
-      wdg->setParent(this);
-      wdg->setMinimumSize(100,100);
-      wdg->resize(100,100);
-      wdg->move(width()-100,height()-100);
-      m_pIcon = wdg;
-   }
+   //Constructor
+   CallViewOverlay(QWidget* parent);
 
-   void setVisible(bool enabled) {
-      if (m_enabled != enabled) {
-         if (m_pTimer) {
-            m_pTimer->stop();
-            disconnect(m_pTimer);
-         }
-         m_pTimer = new QTimer(this); //TODO LEAK
-         connect(m_pTimer, SIGNAL(timeout()), this, SLOT(changeVisibility()));
-         m_step = 0;
-         black.setAlpha(0);
-         repaint();
-         m_pTimer->start(10);
-      }
-      m_enabled = enabled;
-      QWidget::setVisible(enabled);
-   }
+   //Setters
+   void setCornerWidget(QWidget* wdg);
+   void setVisible(bool enabled);
+   
 protected:
-   void paintEvent(QPaintEvent* event) {
-      Q_UNUSED(event)
-      QPainter customPainter(this);
-      customPainter.fillRect(rect(),black);
-   }
-   virtual void resizeEvent(QResizeEvent *e) {
-      Q_UNUSED(e)
-      if (m_pIcon) {
-         m_pIcon->setMinimumSize(100,100);
-         m_pIcon->move(width()-100,height()-100);
-      }
-   }
+   virtual void paintEvent  (QPaintEvent*  event );
+   virtual void resizeEvent (QResizeEvent* e     );
+   
 private:
-   QWidget* m_pIcon;
-   uint m_step;
-   QTimer* m_pTimer;
-   bool m_enabled;
-   QColor black;
+   QWidget* m_pIcon  ;
+   uint     m_step   ;
+   QTimer*  m_pTimer ;
+   bool     m_enabled;
+   QColor   m_black  ;
    
 private slots:
-   void changeVisibility() {
-      m_step++;
-      black.setAlpha(0.1*m_step*m_step);
-      repaint();
-      if (m_step >= 35)
-         m_pTimer->stop();
-   }
+   void changeVisibility();
 };
 
 ///@class CallView Central tree widget managing active calls
diff --git a/kde/src/lib/Call.cpp b/kde/src/lib/Call.cpp
index 95912c67651d2c99aeebaf9d2245338c9847d67b..43913a8d52c7054a86419acf6b2ba0d34f39f23f 100644
--- a/kde/src/lib/Call.cpp
+++ b/kde/src/lib/Call.cpp
@@ -493,7 +493,7 @@ call_state Call::actionPerformed(call_action action)
    if (previousState < 11 && action < 5) {
       changeCurrentState(actionPerformedStateMap[previousState][action]);
       //execute the action associated with this transition
-      (this->*(actionPerformedFunctionMap[previousState][action]))(); //WARNING BUG //WARNING SEGFAULT //TODO remove this node, it was not a good idea, it is not stable
+      (this->*(actionPerformedFunctionMap[previousState][action]))();
       qDebug() << "Calling action " << action << " on call with state " << previousState << ". Become " << m_CurrentState;
       //return the new state
    }
diff --git a/kde/src/lib/CallModel.hpp b/kde/src/lib/CallModel.hpp
index f7dd95f067be69b528400af9cb6e1faaefd787c7..f19081c5a580269fd29f90a9985c553b9ec9ffe8 100644
--- a/kde/src/lib/CallModel.hpp
+++ b/kde/src/lib/CallModel.hpp
@@ -277,8 +277,9 @@ template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>::
 ///Transfer this call to  "target" number
 template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>::transfer(Call* toTransfer, QString target)
 {
-   qDebug() << "Transferring call " << target;
+   qDebug() << "\n\n\n\n\nTransferring call " << toTransfer->getCallId() << target << "\n\n\n\n\n";
    toTransfer->setTransferNumber(target);
+   toTransfer->changeCurrentState(CALL_STATE_TRANSFER);
    toTransfer->actionPerformed(CALL_ACTION_ACCEPT);
    toTransfer->changeCurrentState(CALL_STATE_OVER);
 }
diff --git a/kde/src/widgets/CallTreeItem.cpp b/kde/src/widgets/CallTreeItem.cpp
index d32d476b02c130a23694ec6ed329947f90692b93..67e4918f09401189853df20d026057a9b0f075cd 100644
--- a/kde/src/widgets/CallTreeItem.cpp
+++ b/kde/src/widgets/CallTreeItem.cpp
@@ -250,7 +250,6 @@ void CallTreeItem::dragEnterEvent ( QDragEnterEvent *e )
       e->mimeData()->data( MIME_CALLID) != SFLPhone::model()->getCall(this)->getCallId()) {
       m_pBtnTrans->setVisible(true);
       emit showChilds(this);
-      m_pBtnConf->forceDragState(e);
       m_isHover = true;
       e->accept();
    }
@@ -258,7 +257,6 @@ void CallTreeItem::dragEnterEvent ( QDragEnterEvent *e )
       m_pBtnConf->setVisible(true);
       m_pBtnTrans->setVisible(true);
       emit showChilds(this);
-      m_pBtnConf->forceDragState(e);
       m_isHover = true;
       e->accept();
    }
diff --git a/kde/src/widgets/TranslucentButtons.cpp b/kde/src/widgets/TranslucentButtons.cpp
index 50a3461c554b12ff5b28b6f76e35192833f61099..a75fdb3f6cfae89cf86c318ee504880ee9f61dac 100644
--- a/kde/src/widgets/TranslucentButtons.cpp
+++ b/kde/src/widgets/TranslucentButtons.cpp
@@ -9,8 +9,7 @@
 #include <QDragLeaveEvent>
 #include <QMimeData>
 
-TranslucentButtons* TranslucentButtons::m_psActiveButton =0;
-
+///Constructor
 TranslucentButtons::TranslucentButtons(QWidget* parent):QPushButton(parent),m_enabled(true),m_pTimer(0),m_CurrentState(0),m_pImg(0)
 {
    setAcceptDrops(true);
@@ -18,18 +17,17 @@ TranslucentButtons::TranslucentButtons(QWidget* parent):QPushButton(parent),m_en
    m_CurrentColor.setAlpha(0);
 }
 
+///Destructor
 TranslucentButtons::~TranslucentButtons()
 {
-   if (m_psActiveButton == this)
-      m_psActiveButton=0;
+   
 }
 
+///How to paint
 void TranslucentButtons::paintEvent(QPaintEvent* event)
 {
    Q_UNUSED(event)
    QPainter customPainter(this);
-   //kDebug() << m_CurrentColor.name();
-   //customPainter.setBackgroundMode( Qt::OpaqueMode );
    customPainter.setBackground(m_CurrentColor);
    customPainter.setBrush(m_CurrentColor);
    customPainter.setPen(Qt::NoPen);
@@ -46,6 +44,7 @@ void TranslucentButtons::paintEvent(QPaintEvent* event)
    customPainter.drawText (rect(), Qt::AlignVCenter|Qt::AlignHCenter, text().replace("&","") );
 }
 
+///Override the visibility toggler
 void TranslucentButtons::setVisible(bool enabled)
 {
    kDebug() << "Enabling!";
@@ -67,6 +66,7 @@ void TranslucentButtons::setVisible(bool enabled)
    QWidget::setVisible(enabled);
 }
 
+///Step by step animation
 void TranslucentButtons::changeVisibility()
 {
    m_step++;
@@ -78,56 +78,29 @@ void TranslucentButtons::changeVisibility()
 
 void TranslucentButtons::dragEnterEvent ( QDragEnterEvent *e )
 {
-// //    if (m_psActiveButton && m_psActiveButton != this) {
-// //       m_psActiveButton->dragLeaveEvent(0);
-// //    }
-//    m_psActiveButton = this;
-//    kDebug() << "In button event";
-//    int alpha = m_CurrentColor.alpha();
-//    m_CurrentColor = "#FF0000";
-//    m_CurrentColor.setAlpha(alpha);
-//    repaint();
-//    e->accept();
-e->ignore();
+   e->ignore();
 }
 
 void TranslucentButtons::dragMoveEvent  ( QDragMoveEvent  *e )
 {
-//    kDebug() << "In button move event";
-//    int alpha = m_CurrentColor.alpha();
-//    m_CurrentColor = "#FF0000";
-//    m_CurrentColor.setAlpha(alpha);
-//    e->accept();
-e->ignore();
+   e->ignore();
 }
 
 void TranslucentButtons::dragLeaveEvent ( QDragLeaveEvent *e )
 {
-//    kDebug() << "Button drag leave";
-//    int alpha = m_CurrentColor.alpha();
-//    m_CurrentColor = "black";
-//    m_CurrentColor.setAlpha(alpha);
-//    //m_CurrentColor = "black";
-//    if (e)
-//       e->ignore();
-//    else {
-//       repaint();
-//    }
-//    e->ignore();
-e->ignore();
+   e->ignore();
 }
 
+///Propagate the mime data
+///@note This propagate like this: button -> tree item -> treewidget
 void TranslucentButtons::dropEvent(QDropEvent *e)
 {
    kDebug() << "Drop accepted";
    emit dataDropped((QMimeData*)e->mimeData());
 }
 
-void TranslucentButtons::forceDragState(QDragEnterEvent *e)
-{
-   dragMoveEvent(e);
-}
-
+///Set the state when the user hover the widget
+///@note This is not called directly to avoid a Qt bug/limitation
 void TranslucentButtons::setHoverState(bool hover)
 {
    if (hover != m_CurrentState) {
@@ -148,323 +121,8 @@ void TranslucentButtons::setHoverState(bool hover)
    }
 }
 
-
+///Set the button pixmap
 void TranslucentButtons::setPixmap(QImage* img)
 {
    m_pImg = img;
-}
-
-bool TranslucentButtons::event(QEvent* e)
-{
-//    switch (e->type()) {
-//       case QEvent::None:
-// kDebug() << "None"; break;
-//       case QEvent::Timer:
-// kDebug() << "Timer"; break;
-//       case QEvent::MouseButtonPress:
-// kDebug() << "MouseButtonPress"; break;
-//       case QEvent::MouseButtonRelease:
-// kDebug() << "MouseButtonRelease"; break;
-//       case QEvent::MouseButtonDblClick:
-// kDebug() << "MouseButtonDblClick"; break;
-//       case QEvent::MouseMove:
-// kDebug() << "MouseMove"; break;
-//       case QEvent::KeyPress:
-// kDebug() << "KeyPress"; break;
-//       case QEvent::KeyRelease:
-// kDebug() << "KeyRelease"; break;
-//       case QEvent::FocusIn:
-// kDebug() << "FocusIn"; break;
-//       case QEvent::FocusOut:
-// kDebug() << "FocusOut"; break;
-//       case QEvent::Enter:
-// kDebug() << "Enter"; break;
-//       case QEvent::Leave:
-// kDebug() << "Leave"; break;
-//       case QEvent::Paint:
-// kDebug() << "Paint"; break;
-//       case QEvent::Move:
-// kDebug() << "Move"; break;
-//       case QEvent::Resize:
-// kDebug() << "Resize"; break;
-//       case QEvent::Create:
-// kDebug() << "Create"; break;
-//       case QEvent::Destroy:
-// kDebug() << "Destroy"; break;
-//       case QEvent::Show:
-// kDebug() << "Show"; break;
-//       case QEvent::Hide:
-// kDebug() << "Hide"; break;
-//       case QEvent::Close:
-// kDebug() << "Close"; break;
-//       case QEvent::Quit:
-// kDebug() << "Quit"; break;
-//       case QEvent::ParentChange:
-// kDebug() << "ParentChange"; break;
-//       case QEvent::ParentAboutToChange:
-// kDebug() << "ParentAboutToChange"; break;
-//       case QEvent::ThreadChange:
-// kDebug() << "ThreadChange"; break;
-//       case QEvent::WindowActivate:
-// kDebug() << "WindowActivate"; break;
-//       case QEvent::WindowDeactivate:
-// kDebug() << "WindowDeactivate"; break;
-//       case QEvent::ShowToParent:
-// kDebug() << "ShowToParent"; break;
-//       case QEvent::HideToParent:
-// kDebug() << "HideToParent"; break;
-//       case QEvent::Wheel:
-// kDebug() << "Wheel"; break;
-//       case QEvent::WindowTitleChange:
-// kDebug() << "WindowTitleChange"; break;
-//       case QEvent::WindowIconChange:
-// kDebug() << "WindowIconChange"; break;
-//       case QEvent::ApplicationWindowIconChange:
-// kDebug() << "ApplicationWindowIconChange"; break;
-//       case QEvent::ApplicationFontChange:
-// kDebug() << "ApplicationFontChange"; break;
-//       case QEvent::ApplicationLayoutDirectionChange:
-// kDebug() << "ApplicationLayoutDirectionChange"; break;
-//       case QEvent::ApplicationPaletteChange:
-// kDebug() << "ApplicationPaletteChange"; break;
-//       case QEvent::PaletteChange:
-// kDebug() << "PaletteChange"; break;
-//       case QEvent::Clipboard:
-// kDebug() << "Clipboard"; break;
-//       case QEvent::Speech:
-// kDebug() << "Speech"; break;
-//       case QEvent::MetaCall:
-// kDebug() << "MetaCall"; break;
-//       case QEvent::SockAct:
-// kDebug() << "SockAct"; break;
-//       case QEvent::WinEventAct:
-// kDebug() << "WinEventAct"; break;
-//       case QEvent::DeferredDelete:
-// kDebug() << "DeferredDelete"; break;
-//       case QEvent::DragEnter:
-// kDebug() << "DragEnter"; break;
-//       case QEvent::DragMove:
-// kDebug() << "DragMove"; break;
-//       case QEvent::DragLeave:
-// kDebug() << "DragLeave"; break;
-//       case QEvent::Drop:
-// kDebug() << "Drop"; break;
-//       case QEvent::DragResponse:
-// kDebug() << "DragResponse"; break;
-//       case QEvent::ChildAdded:
-// kDebug() << "ChildAdded"; break;
-//       case QEvent::ChildPolished:
-// kDebug() << "ChildPolished"; break;
-//       case QEvent::ChildRemoved:
-// kDebug() << "ChildRemoved"; break;
-//       case QEvent::ShowWindowRequest:
-// kDebug() << "ShowWindowRequest"; break;
-//       case QEvent::PolishRequest:
-// kDebug() << "PolishRequest"; break;
-//       case QEvent::Polish:
-// kDebug() << "Polish"; break;
-//       case QEvent::LayoutRequest:
-// kDebug() << "LayoutRequest"; break;
-//       case QEvent::UpdateRequest:
-// kDebug() << "UpdateRequest"; break;
-//       case QEvent::UpdateLater:
-// kDebug() << "UpdateLater"; break;
-//       case QEvent::EmbeddingControl:
-// kDebug() << "EmbeddingControl"; break;
-//       case QEvent::ActivateControl:
-// kDebug() << "ActivateControl"; break;
-//       case QEvent::DeactivateControl:
-// kDebug() << "DeactivateControl"; break;
-//       case QEvent::ContextMenu:
-// kDebug() << "ContextMenu"; break;
-//       case QEvent::InputMethod:
-// kDebug() << "InputMethod"; break;
-//       case QEvent::AccessibilityPrepare:
-// kDebug() << "AccessibilityPrepare"; break;
-//       case QEvent::TabletMove:
-// kDebug() << "TabletMove"; break;
-//       case QEvent::LocaleChange:
-// kDebug() << "LocaleChange"; break;
-//       case QEvent::LanguageChange:
-// kDebug() << "LanguageChange"; break;
-//       case QEvent::LayoutDirectionChange:
-// kDebug() << "LayoutDirectionChange"; break;
-//       case QEvent::Style:
-// kDebug() << "Style"; break;
-//       case QEvent::TabletPress:
-// kDebug() << "TabletPress"; break;
-//       case QEvent::TabletRelease:
-// kDebug() << "TabletRelease"; break;
-//       case QEvent::OkRequest:
-// kDebug() << "OkRequest"; break;
-//       case QEvent::HelpRequest:
-// kDebug() << "HelpRequest"; break;
-//       case QEvent::IconDrag:
-// kDebug() << "IconDrag"; break;
-//       case QEvent::FontChange:
-// kDebug() << "FontChange"; break;
-//       case QEvent::EnabledChange:
-// kDebug() << "EnabledChange"; break;
-//       case QEvent::ActivationChange:
-// kDebug() << "ActivationChange"; break;
-//       case QEvent::StyleChange:
-// kDebug() << "StyleChange"; break;
-//       case QEvent::IconTextChange:
-// kDebug() << "IconTextChange"; break;
-//       case QEvent::ModifiedChange:
-// kDebug() << "ModifiedChange"; break;
-//       case QEvent::MouseTrackingChange:
-// kDebug() << "MouseTrackingChange"; break;
-//       case QEvent::WindowBlocked:
-// kDebug() << "WindowBlocked"; break;
-//       case QEvent::WindowUnblocked:
-// kDebug() << "WindowUnblocked"; break;
-//       case QEvent::WindowStateChange:
-// kDebug() << "WindowStateChange"; break;
-//       case QEvent::ToolTip:
-// kDebug() << "ToolTip"; break;
-//       case QEvent::WhatsThis:
-// kDebug() << "WhatsThis"; break;
-//       case QEvent::StatusTip:
-// kDebug() << "StatusTip"; break;
-//       case QEvent::ActionChanged:
-// kDebug() << "ActionChanged"; break;
-//       case QEvent::ActionAdded:
-// kDebug() << "ActionAdded"; break;
-//       case QEvent::ActionRemoved:
-// kDebug() << "ActionRemoved"; break;
-//       case QEvent::FileOpen:
-// kDebug() << "FileOpen"; break;
-//       case QEvent::Shortcut:
-// kDebug() << "Shortcut"; break;
-//       case QEvent::ShortcutOverride:
-// kDebug() << "ShortcutOverride"; break;
-//       case QEvent::WhatsThisClicked:
-// kDebug() << "WhatsThisClicked"; break;
-//       case QEvent::QueryWhatsThis:
-// kDebug() << "QueryWhatsThis"; break;
-//       case QEvent::EnterWhatsThisMode:
-// kDebug() << "EnterWhatsThisMode"; break;
-//       case QEvent::LeaveWhatsThisMode:
-// kDebug() << "LeaveWhatsThisMode"; break;
-//       case QEvent::ZOrderChange:
-// kDebug() << "ZOrderChange"; break;
-//       case QEvent::HoverEnter:
-// kDebug() << "HoverEnter"; break;
-//       case QEvent::HoverLeave:
-// kDebug() << "HoverLeave"; break;
-//       case QEvent::HoverMove:
-// kDebug() << "HoverMove"; break;
-//       case QEvent::AccessibilityHelp:
-// kDebug() << "AccessibilityHelp"; break;
-//       case QEvent::AccessibilityDescription:
-// kDebug() << "AccessibilityDescription"; break;
-//       case QEvent::AcceptDropsChange:
-// kDebug() << "AcceptDropsChange"; break;
-//       case QEvent::MenubarUpdated:
-// kDebug() << "MenubarUpdated"; break;
-//       case QEvent::ZeroTimerEvent:
-// kDebug() << "ZeroTimerEvent"; break;
-//       case QEvent::GraphicsSceneMouseMove:
-// kDebug() << "GraphicsSceneMouseMove"; break;
-//       case QEvent::GraphicsSceneMousePress:
-// kDebug() << "GraphicsSceneMousePress"; break;
-//       case QEvent::GraphicsSceneMouseRelease:
-// kDebug() << "GraphicsSceneMouseRelease"; break;
-//       case QEvent::GraphicsSceneMouseDoubleClick:
-// kDebug() << "GraphicsSceneMouseDoubleClick"; break;
-//       case QEvent::GraphicsSceneContextMenu:
-// kDebug() << "GraphicsSceneContextMenu"; break;
-//       case QEvent::GraphicsSceneHoverEnter:
-// kDebug() << "GraphicsSceneHoverEnter"; break;
-//       case QEvent::GraphicsSceneHoverMove:
-// kDebug() << "GraphicsSceneHoverMove"; break;
-//       case QEvent::GraphicsSceneHoverLeave:
-// kDebug() << "GraphicsSceneHoverLeave"; break;
-//       case QEvent::GraphicsSceneHelp:
-// kDebug() << "GraphicsSceneHelp"; break;
-//       case QEvent::GraphicsSceneDragEnter:
-// kDebug() << "GraphicsSceneDragEnter"; break;
-//       case QEvent::GraphicsSceneDragMove:
-// kDebug() << "GraphicsSceneDragMove"; break;
-//       case QEvent::GraphicsSceneDragLeave:
-// kDebug() << "GraphicsSceneDragLeave"; break;
-//       case QEvent::GraphicsSceneDrop:
-// kDebug() << "GraphicsSceneDrop"; break;
-//       case QEvent::GraphicsSceneWheel:
-// kDebug() << "GraphicsSceneWheel"; break;
-//       case QEvent::KeyboardLayoutChange:
-// kDebug() << "KeyboardLayoutChange"; break;
-//       case QEvent::DynamicPropertyChange:
-// kDebug() << "DynamicPropertyChange"; break;
-//       case QEvent::TabletEnterProximity:
-// kDebug() << "TabletEnterProximity"; break;
-//       case QEvent::TabletLeaveProximity:
-// kDebug() << "TabletLeaveProximity"; break;
-//       case QEvent::NonClientAreaMouseMove:
-// kDebug() << "NonClientAreaMouseMove"; break;
-//       case QEvent::NonClientAreaMouseButtonPress:
-// kDebug() << "NonClientAreaMouseButtonPress"; break;
-//       case QEvent::NonClientAreaMouseButtonRelease:
-// kDebug() << "NonClientAreaMouseButtonRelease"; break;
-//       case QEvent::NonClientAreaMouseButtonDblClick:
-// kDebug() << "NonClientAreaMouseButtonDblClick"; break;
-//       case QEvent::MacSizeChange:
-// kDebug() << "MacSizeChange"; break;
-//       case QEvent::ContentsRectChange:
-// kDebug() << "ContentsRectChange"; break;
-//       case QEvent::MacGLWindowChange:
-// kDebug() << "MacGLWindowChange"; break;
-//       case QEvent::FutureCallOut:
-// kDebug() << "FutureCallOut"; break;
-//       case QEvent::GraphicsSceneResize:
-// kDebug() << "GraphicsSceneResize"; break;
-//       case QEvent::GraphicsSceneMove:
-// kDebug() << "GraphicsSceneMove"; break;
-//       case QEvent::CursorChange:
-// kDebug() << "CursorChange"; break;
-//       case QEvent::ToolTipChange:
-// kDebug() << "ToolTipChange"; break;
-//       case QEvent::NetworkReplyUpdated:
-// kDebug() << "NetworkReplyUpdated"; break;
-//       case QEvent::GrabMouse:
-// kDebug() << "GrabMouse"; break;
-//       case QEvent::UngrabMouse:
-// kDebug() << "UngrabMouse"; break;
-//       case QEvent::GrabKeyboard:
-// kDebug() << "GrabKeyboard"; break;
-//       case QEvent::UngrabKeyboard:
-// kDebug() << "UngrabKeyboard"; break;
-//       case QEvent::MacGLClearDrawable:
-// kDebug() << "MacGLClearDrawable"; break;
-//       case QEvent::StateMachineSignal:
-// kDebug() << "StateMachineSignal"; break;
-//       case QEvent::StateMachineWrapped:
-// kDebug() << "StateMachineWrapped"; break;
-//       case QEvent::TouchBegin:
-// kDebug() << "TouchBegin"; break;
-//       case QEvent::TouchUpdate:
-// kDebug() << "TouchUpdate"; break;
-//       case QEvent::TouchEnd:
-// kDebug() << "TouchEnd"; break;
-//       case QEvent::NativeGesture:
-// kDebug() << "NativeGesture"; break;
-//       case QEvent::RequestSoftwareInputPanel:
-// kDebug() << "RequestSoftwareInputPanel"; break;
-//       case QEvent::CloseSoftwareInputPanel:
-// kDebug() << "CloseSoftwareInputPanel"; break;
-//       case QEvent::UpdateSoftKeys:
-// kDebug() << "UpdateSoftKeys"; break;
-//       case QEvent::WinIdChange:
-// kDebug() << "WinIdChange"; break;
-//       case QEvent::Gesture:
-// kDebug() << "Gesture"; break;
-//       case QEvent::GestureOverride:
-// kDebug() << "GestureOverride"; break;
-//       case QEvent::User:
-// kDebug() << "User"; break;
-//       case QEvent::MaxUser:
-//          kDebug() << "MaxUser"; break;
-//    }
-   return QPushButton::event(e);
 }
\ No newline at end of file
diff --git a/kde/src/widgets/TranslucentButtons.h b/kde/src/widgets/TranslucentButtons.h
index 9270dd8b6d1990dea78cde496652a1ef4aa88f15..50585294ddecdaaa298da54ebc29c1db49163f95 100644
--- a/kde/src/widgets/TranslucentButtons.h
+++ b/kde/src/widgets/TranslucentButtons.h
@@ -12,27 +12,32 @@ class TranslucentButtons : public QPushButton
 {
    Q_OBJECT
 public:
+   //Constructor
    TranslucentButtons(QWidget* parent);
    ~TranslucentButtons();
-   void forceDragState(QDragEnterEvent *e);
+
+   //Setters
    void setHoverState(bool hover);
    void setPixmap(QImage* img);
+   
 protected:
+   //Reimplementation
    virtual void paintEvent(QPaintEvent* event);
    virtual void dragEnterEvent ( QDragEnterEvent *e );
    virtual void dragMoveEvent  ( QDragMoveEvent  *e );
    virtual void dragLeaveEvent ( QDragLeaveEvent *e );
    virtual void dropEvent      ( QDropEvent      *e );
-   virtual bool event(QEvent* e);
+   
 private:
-   bool m_enabled;
-   uint m_step;
-   QTimer* m_pTimer;
-   QColor m_CurrentColor;
-   QPen   m_Pen;
-   bool m_CurrentState;
-   QImage* m_pImg;
-   static TranslucentButtons* m_psActiveButton; /*Workaround for a Qt bug*/
+   //Attributes
+   bool    m_enabled     ;
+   uint    m_step        ;
+   QTimer* m_pTimer      ;
+   QColor  m_CurrentColor;
+   QPen    m_Pen         ;
+   bool    m_CurrentState;
+   QImage* m_pImg        ;
+   
 public slots:
    void setVisible(bool enabled);
 private slots: