Mir

Merge lp:~alan-griffiths/mir/fix-1465692 into lp:mir

Proposed by Alan Griffiths
Status: Merged
Approved by: Cemil Azizoglu
Approved revision: no longer in the source branch.
Merged at revision: 2672
Proposed branch: lp:~alan-griffiths/mir/fix-1465692
Merge into: lp:mir
Diff against target: 40 lines (+18/-8)
1 file modified
src/server/graphics/nested/display_buffer.cpp (+18/-8)
To merge this branch: bzr merge lp:~alan-griffiths/mir/fix-1465692
Reviewer Review Type Date Requested Status
Cemil Azizoglu (community) Approve
Andreas Pokorny (community) Approve
Alberto Aguirre (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+262101@code.launchpad.net

Commit message

graphics/nested: Map pointer events from surface-local coordinates

Description of the change

graphics/nested: Map pointer events from surface-local coordinates

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Alberto Aguirre (albaguirre) wrote :

OK.

review: Approve
Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

ok

review: Approve
Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

ok

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/server/graphics/nested/display_buffer.cpp'
2--- src/server/graphics/nested/display_buffer.cpp 2015-05-19 21:34:34 +0000
3+++ src/server/graphics/nested/display_buffer.cpp 2015-06-16 14:58:05 +0000
4@@ -108,18 +108,28 @@
5 {
6 if (mir_event_get_type(&event) != mir_event_type_input)
7 return;
8- auto iev = mir_event_get_input_event(&event);
9
10- if (mir_input_event_get_type(iev) == mir_input_event_type_pointer)
11- {
12- auto pev = mir_input_event_get_pointer_event(iev);
13- auto x = mir_pointer_event_axis_value(pev, mir_pointer_axis_x) + area.top_left.x.as_float();
14- auto y = mir_pointer_event_axis_value(pev, mir_pointer_axis_y) + area.top_left.y.as_float();
15- cursor_listener->cursor_moved_to(x, y);
16- }
17 if (event.type == mir_event_type_motion)
18 {
19 auto my_event = event;
20+ auto iev = mir_event_get_input_event(&my_event);
21+
22+ if (mir_input_event_get_type(iev) == mir_input_event_type_pointer)
23+ {
24+ auto& motion = my_event.motion;
25+
26+ for (size_t i = 0; i != motion.pointer_count; ++i)
27+ {
28+ motion.pointer_coordinates[i].x += area.top_left.x.as_float();
29+ motion.pointer_coordinates[i].y += area.top_left.y.as_float();
30+ }
31+
32+ auto pev = mir_input_event_get_pointer_event(iev);
33+ auto x = mir_pointer_event_axis_value(pev, mir_pointer_axis_x);
34+ auto y = mir_pointer_event_axis_value(pev, mir_pointer_axis_y);
35+ cursor_listener->cursor_moved_to(x, y);
36+ }
37+
38 dispatcher->dispatch(my_event);
39 }
40 else

Subscribers

People subscribed via source and target branches