]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Don't rely on the m_isHovered flag, explicitely check the left mouse button instead.
authorPeter Penz <peter.penz19@gmail.com>
Tue, 17 Feb 2009 21:54:25 +0000 (21:54 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 17 Feb 2009 21:54:25 +0000 (21:54 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=927602

src/selectiontoggle.cpp
src/selectiontoggle.h

index 01cfed0f3d80c49c239cb27d7c35eed9b28c87d6..5c573811e7654c8a352607e6f4f61961cb7ad444 100644 (file)
@@ -34,6 +34,7 @@
 SelectionToggle::SelectionToggle(QWidget* parent) :
     QAbstractButton(parent),
     m_isHovered(false),
+    m_leftMouseButtonPressed(false),
     m_fadingValue(0),
     m_icon(),
     m_fadingTimeLine(0)
@@ -96,7 +97,7 @@ bool SelectionToggle::eventFilter(QObject* obj, QEvent* event)
             break;
 
         case QEvent::MouseMove:
-            if (m_isHovered) {
+            if (m_leftMouseButtonPressed) {
                 // Don't forward mouse move events to the viewport,
                 // otherwise a rubberband selection will be shown when
                 // clicking on the selection toggle and moving the mouse
@@ -136,6 +137,18 @@ void SelectionToggle::leaveEvent(QEvent* event)
     update();
 }
 
+void SelectionToggle::mousePressEvent(QMouseEvent* event)
+{
+    QAbstractButton::mousePressEvent(event);
+    m_leftMouseButtonPressed = (event->buttons() & Qt::LeftButton);
+}
+
+void SelectionToggle::mouseReleaseEvent(QMouseEvent* event)
+{
+    QAbstractButton::mouseReleaseEvent(event);
+    m_leftMouseButtonPressed = (event->buttons() & Qt::LeftButton);
+}
+
 void SelectionToggle::paintEvent(QPaintEvent* event)
 {
     QPainter painter(this);
index e8f808562b15dde3b888082b6249d6acaa44dae3..705f9a6e679459235be6755a351f4dd0eb5c7e5e 100644 (file)
@@ -60,6 +60,8 @@ protected:
     virtual bool eventFilter(QObject* obj, QEvent* event);
     virtual void enterEvent(QEvent* event);
     virtual void leaveEvent(QEvent* event);
+    virtual void mousePressEvent(QMouseEvent* event);
+    virtual void mouseReleaseEvent(QMouseEvent* event);
     virtual void paintEvent(QPaintEvent* event);
 
 private slots:
@@ -78,6 +80,7 @@ private:
 
 private:
     bool m_isHovered;
+    bool m_leftMouseButtonPressed;
     int m_fadingValue;
     QPixmap m_icon;
     QTimeLine* m_fadingTimeLine;