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
=== modified file 'src/server/graphics/nested/display_buffer.cpp'
--- src/server/graphics/nested/display_buffer.cpp 2015-05-19 21:34:34 +0000
+++ src/server/graphics/nested/display_buffer.cpp 2015-06-16 14:58:05 +0000
@@ -108,18 +108,28 @@
108{108{
109 if (mir_event_get_type(&event) != mir_event_type_input)109 if (mir_event_get_type(&event) != mir_event_type_input)
110 return;110 return;
111 auto iev = mir_event_get_input_event(&event);
112111
113 if (mir_input_event_get_type(iev) == mir_input_event_type_pointer)
114 {
115 auto pev = mir_input_event_get_pointer_event(iev);
116 auto x = mir_pointer_event_axis_value(pev, mir_pointer_axis_x) + area.top_left.x.as_float();
117 auto y = mir_pointer_event_axis_value(pev, mir_pointer_axis_y) + area.top_left.y.as_float();
118 cursor_listener->cursor_moved_to(x, y);
119 }
120 if (event.type == mir_event_type_motion)112 if (event.type == mir_event_type_motion)
121 {113 {
122 auto my_event = event;114 auto my_event = event;
115 auto iev = mir_event_get_input_event(&my_event);
116
117 if (mir_input_event_get_type(iev) == mir_input_event_type_pointer)
118 {
119 auto& motion = my_event.motion;
120
121 for (size_t i = 0; i != motion.pointer_count; ++i)
122 {
123 motion.pointer_coordinates[i].x += area.top_left.x.as_float();
124 motion.pointer_coordinates[i].y += area.top_left.y.as_float();
125 }
126
127 auto pev = mir_input_event_get_pointer_event(iev);
128 auto x = mir_pointer_event_axis_value(pev, mir_pointer_axis_x);
129 auto y = mir_pointer_event_axis_value(pev, mir_pointer_axis_y);
130 cursor_listener->cursor_moved_to(x, y);
131 }
132
123 dispatcher->dispatch(my_event);133 dispatcher->dispatch(my_event);
124 }134 }
125 else135 else

Subscribers

People subscribed via source and target branches