When pointer motion crosses window borders SurfaceInputDispatcher injected events increase accumulated relative motion
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Medium
|
Andreas Pokorny | ||
mir (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
SurfaceInputDis
Now if the new window accumulates the pointer events (like the nested server) to track a cursor position this tracking will now add the relative motion of the original event twice.
We could decide to not send the original motion event after having provided the enter event. But that might not work for cases where the original event was a pointer button up/down event. Since we would have to emit that state change too. So that leaves us with nullifying the relative motion event in one case, or ignoring relative motion in enter exit events in our own cursor position tracker..
Related branches
- Mir CI Bot: Approve (continuous-integration)
- Kevin DuBois (community): Approve
- Alexandros Frantzis (community): Approve
-
Diff: 515 lines (+220/-43)10 files modifiedinclude/test/mir/test/event_matchers.h (+45/-0)
src/client/event_printer.cpp (+3/-3)
src/server/graphics/nested/input_platform.cpp (+8/-1)
src/server/input/surface_input_dispatcher.cpp (+42/-1)
tests/acceptance-tests/test_client_cookie.cpp (+1/-2)
tests/acceptance-tests/test_client_input.cpp (+10/-17)
tests/acceptance-tests/test_confined_pointer.cpp (+4/-8)
tests/acceptance-tests/test_nested_input.cpp (+77/-2)
tests/unit-tests/input/test_nested_input_platform.cpp (+27/-0)
tests/unit-tests/input/test_surface_input_dispatcher.cpp (+3/-9)
tags: | added: input |
tags: | added: nested |
Changed in mir: | |
importance: | Undecided → Medium |
assignee: | nobody → Andreas Pokorny (andreas-pokorny) |
status: | New → In Progress |
Changed in mir: | |
milestone: | none → 0.26.0 |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.26.0