WheelHandler not eating events
Solved
QML and Qt Quick
-
import QtQuick 2.15 import QtQuick.Window 2.15 Window { width: 640 height: 480 visible: true title: qsTr("Wheel Handler Issue") WheelHandler { objectName: "handler1" onWheel: { console.log(objectName) event.accepted = true } } WheelHandler { objectName: "handler2" onWheel: { console.log(objectName) event.accepted = true } } }
Output:
qml: handler2 qml: handler1
Shouldn't the "event.accepted = true" keep the first wheel handler from firing?
-
Okay, feeling a little bit better about this. My test case is something that shouldn't happen anyway:
import QtQuick 2.15 import QtQuick.Window 2.15 Window { width: 640 height: 480 visible: true title: qsTr("Wheel Handler Issue") Item { anchors.fill: parent WheelHandler { objectName: "handler1" onWheel: { console.log(objectName) event.accepted = true } } } Item { anchors.fill: parent WheelHandler { objectName: "handler2" onWheel: { console.log(objectName) event.accepted = true } } } }
Item precedence solves the need to redefine WheelHandler if needed.
result:qml: handler2
Handler 1 no longer fires. Yay!