Skip to content

Feature: add event filter callbacks to all components that handle events #10702

@kermitfrog

Description

@kermitfrog

Feature Description

I feel that the current approach with TouchArea/Flickable/etc. is not sufficient for some use cases and would like to have the abillity to intercept input events for every component.

TextInput, CheckBox, and everything else that handles an event should have callbacks corresponding to the events they handle. Maybe this could be built into some common base code of these components?

These callbacks would be invoked before the components own input handling and default to reject (as in "let the component do it"), but should also be able to return skip, which would instruct the component not to handle the event at all and pass it on to the next handler instead. Beeing able to forward the event to a specific component might be great, too.

There are already issues that concern a part of this: #4365, #8973, #10489 and possibly #9840 (not sure I understand that one). Probably more that I have not seen yet.
I decided to open this one, not only as another case, but to act as a kind of meta-issue for these, emphasizing what I believe to be a common sollution.

Product Impact

My current example is a ListView containing CheckBoxes. As these handle the scroll event, it is only possible to scroll the list per wheel if the mouse is placed in the space without any CheckBox, which is very annoying from a UX perspective.
Setting scroll-event(event) => {skip} would fix that.

Metadata

Metadata

Assignees

No one assigned

    Labels

    need triagingIssue that the owner of the area still need to triage

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions