diff options
author | Frederik Gladhorn <frederik.gladhorn@remarkable.com> | 2020-03-28 15:14:41 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@remarkable.com> | 2020-03-31 15:25:07 +0200 |
commit | 8ace780b5aa298e3c01903bfd57f766a42209191 (patch) | |
tree | db837d94a0f683bb9b2499067ec0a3f690d51216 /src/qml/common/qqmljsdiagnosticmessage_p.h | |
parent | d94bb1f6795302ef6eec795dd3ad92d60bd2aa4d (diff) |
Fix QQuickMouseArea getting stuck in pressed state when hiding in press
In 78c1fcbc49f56463064eef738a475d9018357b24 we stopped giving the
exclusive grab to hidden or disabled items with is good. But the change
did not take into consideration how mouse area handles its internal
state.
As a simple example: A mouse area that would set itself hiddin in the
press handler, would continue to have d->pressed == true, which means it
would not react to any future press events.
The fix is to let mouse area check in its change handler whether it has
become invisible.
The test also checks that enabled behaves the same way. There is no
action needed, since mouse area does completely custom handling of
enabled (maybe something to fix in Qt 6), disabling a mouse area doesn't
disable its children for example, it doesn't invoke
QQuickItem::setEnabled at all. Due to this circumventing the common
behavior, by chance disabling a mouse area in the on pressed handler
works.
Fixes: QTBUG-74987
Change-Id: Idb8499b3e5bcb744fbba203fdea5c46695bd5077
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Diffstat (limited to 'src/qml/common/qqmljsdiagnosticmessage_p.h')
0 files changed, 0 insertions, 0 deletions