Skip to content

Draft: tabbox: Unset pointer focus when grabbing input

Vlad Zahorodnii requested to merge work/zzag/tabbox-wl-pointer-enter-leave into master

When the tabbox is active, it grabs all pointer input, no new pointer position is going to be reported to SeatInterface. But the tabbox also doesn't reset the pointer focus. So from the client perspective, it looks like nothing has occurred.

The tabbox needs to send a wl_pointer.leave event when it's activated and wl_pointer.enter event when it's deactivated to report the new position of the pointer.

As a short-term solution, this change makes the tabbox call setFocus() and update() directly, but such focus handling indicates that we need proper abstractions for grabs. Input event filters have their place in the input event pipeline but they are not the replacement for grabs.

BUG: 480099

Edited by Vlad Zahorodnii

Merge request reports