QQuickControl: Accept all the mouse events by default
Controls are mouse-opaque items in the sense that, if the control doesn't do anything with the mouse (or touch) event, there's no need to propagate it further. This avoids issues with controls like ToolBar, where clicking on its background may send the mouse event to an item below it. Change-Id: Ib3c95a55db2abfd6a13333f4b0187852a656ec03 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
This commit is contained in:
parent
8c5100ca39
commit
d88d9d6342
|
@ -229,14 +229,12 @@ void QQuickButton::mousePressEvent(QMouseEvent *event)
|
|||
QQuickControl::mousePressEvent(event);
|
||||
setPressed(true);
|
||||
emit pressed();
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void QQuickButton::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
QQuickControl::mouseMoveEvent(event);
|
||||
setPressed(contains(event->pos()));
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void QQuickButton::mouseReleaseEvent(QMouseEvent *event)
|
||||
|
@ -251,7 +249,6 @@ void QQuickButton::mouseReleaseEvent(QMouseEvent *event)
|
|||
} else {
|
||||
emit canceled();
|
||||
}
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void QQuickButton::mouseUngrabEvent()
|
||||
|
|
|
@ -454,6 +454,21 @@ void QQuickControl::setContentItem(QQuickItem *item)
|
|||
}
|
||||
}
|
||||
|
||||
void QQuickControl::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void QQuickControl::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void QQuickControl::mouseReleaseEvent(QMouseEvent *event)
|
||||
{
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void QQuickControl::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)
|
||||
{
|
||||
Q_D(QQuickControl);
|
||||
|
|
|
@ -126,6 +126,9 @@ Q_SIGNALS:
|
|||
protected:
|
||||
QQuickControl(QQuickControlPrivate &dd, QQuickItem *parent);
|
||||
|
||||
void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
|
||||
void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
|
||||
void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
|
||||
void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE;
|
||||
|
||||
virtual void mirrorChange();
|
||||
|
|
|
@ -262,7 +262,6 @@ void QQuickScrollBar::mousePressEvent(QMouseEvent *event)
|
|||
if (d->offset < 0 || d->offset > d->size)
|
||||
d->offset = d->size / 2;
|
||||
setPressed(true);
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void QQuickScrollBar::mouseMoveEvent(QMouseEvent *event)
|
||||
|
@ -270,7 +269,6 @@ void QQuickScrollBar::mouseMoveEvent(QMouseEvent *event)
|
|||
Q_D(QQuickScrollBar);
|
||||
QQuickControl::mouseMoveEvent(event);
|
||||
setPosition(qBound(0.0, positionAt(event->pos()) - d->offset, 1.0 - d->size));
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void QQuickScrollBar::mouseReleaseEvent(QMouseEvent *event)
|
||||
|
@ -280,7 +278,6 @@ void QQuickScrollBar::mouseReleaseEvent(QMouseEvent *event)
|
|||
setPosition(qBound(0.0, positionAt(event->pos()) - d->offset, 1.0 - d->size));
|
||||
d->offset = 0.0;
|
||||
setPressed(false);
|
||||
event->accept();
|
||||
}
|
||||
|
||||
qreal QQuickScrollBar::positionAt(const QPoint &point) const
|
||||
|
|
|
@ -499,7 +499,6 @@ void QQuickSlider::mousePressEvent(QMouseEvent *event)
|
|||
QQuickControl::mousePressEvent(event);
|
||||
d->pressPoint = event->pos();
|
||||
setPressed(true);
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void QQuickSlider::mouseMoveEvent(QMouseEvent *event)
|
||||
|
@ -518,7 +517,6 @@ void QQuickSlider::mouseMoveEvent(QMouseEvent *event)
|
|||
pos = d->snapPosition(pos);
|
||||
d->setPosition(pos);
|
||||
}
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void QQuickSlider::mouseReleaseEvent(QMouseEvent *event)
|
||||
|
@ -534,7 +532,6 @@ void QQuickSlider::mouseReleaseEvent(QMouseEvent *event)
|
|||
setKeepMouseGrab(false);
|
||||
}
|
||||
setPressed(false);
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void QQuickSlider::mouseUngrabEvent()
|
||||
|
|
Loading…
Reference in New Issue