mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
Don't rely on the m_isHovered flag, explicitely check the left mouse button instead.
svn path=/trunk/KDE/kdebase/apps/; revision=927602
This commit is contained in:
parent
684ab89c7d
commit
85dbeb2598
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue