Mir

Merge lp:~mir-team/mir/unify-event-modifiers into lp:mir

Proposed by Robert Carr
Status: Merged
Approved by: Robert Carr
Approved revision: no longer in the source branch.
Merged at revision: 2546
Proposed branch: lp:~mir-team/mir/unify-event-modifiers
Merge into: lp:mir
Prerequisite: lp:~mir-team/mir/pluck-low-hanging-event-fruit
Diff against target: 764 lines (+171/-166)
17 files modified
playground/demo-shell/window_manager.cpp (+14/-14)
src/client/events/event_builders.cpp (+3/-46)
src/client/input/android/CMakeLists.txt (+1/-0)
src/client/input/android/android_input_lexicon.cpp (+3/-2)
src/client/input/android/event_conversion_helpers.cpp (+70/-0)
src/client/input/input_event.cpp (+3/-52)
src/client/symbols.map (+2/-0)
src/include/common/mir/events/event_private.h (+2/-23)
src/include/common/mir/input/android/event_conversion_helpers.h (+36/-0)
src/server/input/android/android_input_dispatcher.cpp (+3/-2)
src/server/input/android/input_sender.cpp (+3/-2)
src/server/input/android/input_translator.cpp (+15/-8)
src/server/input/vt_filter.cpp (+2/-2)
tests/unit-tests/input/android/test_android_input_dispatcher.cpp (+4/-4)
tests/unit-tests/input/android/test_android_input_lexicon.cpp (+2/-4)
tests/unit-tests/input/android/test_input_translator.cpp (+2/-2)
tests/unit-tests/input/test_input_event.cpp (+6/-5)
To merge this branch: bzr merge lp:~mir-team/mir/unify-event-modifiers
Reviewer Review Type Date Requested Status
Alexandros Frantzis (community) Approve
Kevin DuBois (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+258218@code.launchpad.net

Commit message

Remove the legacy event modifier enum.

Description of the change

Remove the legacy event modifier enum.

This branch is part of the event cleaning pipeline:

Pluck-low-hanging-event-fruit: Remove unused event members.
Unify-event-modifiers: Consolidate modifier enums (https://code.launchpad.net/~mir-team/mir/unify-event-modifiers/+merge/258218)
Unify-keyboard-actions: Consolidate keyboard action enums and key repeat representation (https://code.launchpad.net/~mir-team/mir/unify-keyboard-actions/+merge/258288)
Remaining-nsec-removal: Remove usage of nsecs_t in event_private.h https://code.launchpad.net/~mir-team/mir/remaining-nsec-removal/+merge/258292
unify-pointer-button: Consolidate pointer button enums
https://code.launchpad.net/~mir-team/mir/unify-pointer-button

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :

side note: If playground/demo-shell/window_manager.cpp could be ported to use the new events, that's a big step forward to moving it to examples/

lgtm

review: Approve
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

585+ if (mir_modifiers != mir_input_event_modifier_none && mir_modifiers & mir_input_event_modifier_none)
586+ mir_modifiers &= ~mir_input_event_modifier_none;

if (mir_modifiers != mir_input_event_modifier_none)
    mir_modifiers &= ~mir_input_event_modifier_none;

or

if (mir_modifiers | ~mir_input_event_modifier_none)
    mir_modifiers &= ~mir_input_event_modifier_none;

Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

Looks good.

I think that mir_input_event_modifier_none not being equal to 0 (i.e. no modifiers), makes its use unintuitive, but that's another discussion.

review: Approve
Revision history for this message
Robert Carr (robertcarr) wrote :

>> I think that mir_input_event_modifier_none not being equal to 0 (i.e. no modifiers), makes its
>> use unintuitive, but that's another discussion.

Yeah you may be right. It was originally an intentional decision with the idea that 0 was reserved for an out of band/invalid state. Practically though I made an error in the original assembly of the branch (fixed before submission don't worry ;))...I'm not sure if it was just because of confusion with the android flags or this interface really is hard to use though.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'playground/demo-shell/window_manager.cpp'
--- playground/demo-shell/window_manager.cpp 2015-04-16 18:50:58 +0000
+++ playground/demo-shell/window_manager.cpp 2015-05-05 05:53:22 +0000
@@ -209,7 +209,7 @@
209 if (event.key.type == mir_event_type_key &&209 if (event.key.type == mir_event_type_key &&
210 event.key.action == mir_key_action_down)210 event.key.action == mir_key_action_down)
211 {211 {
212 if (event.key.modifiers & mir_key_modifier_alt &&212 if (event.key.modifiers & mir_input_event_modifier_alt &&
213 event.key.scan_code == KEY_TAB) // TODO: Use keycode once we support keymapping on the server side213 event.key.scan_code == KEY_TAB) // TODO: Use keycode once we support keymapping on the server side
214 {214 {
215 focus_controller->focus_next_session();215 focus_controller->focus_next_session();
@@ -217,7 +217,7 @@
217 focus_controller->raise({surface});217 focus_controller->raise({surface});
218 return true;218 return true;
219 }219 }
220 else if (event.key.modifiers & mir_key_modifier_alt &&220 else if (event.key.modifiers & mir_input_event_modifier_alt &&
221 event.key.scan_code == KEY_GRAVE)221 event.key.scan_code == KEY_GRAVE)
222 {222 {
223 if (auto const prev = focus_controller->focused_surface())223 if (auto const prev = focus_controller->focused_surface())
@@ -229,7 +229,7 @@
229 }229 }
230 return true;230 return true;
231 }231 }
232 else if (event.key.modifiers & mir_key_modifier_alt &&232 else if (event.key.modifiers & mir_input_event_modifier_alt &&
233 event.key.scan_code == KEY_F4)233 event.key.scan_code == KEY_F4)
234 {234 {
235 auto const surf = focus_controller->focused_surface();235 auto const surf = focus_controller->focused_surface();
@@ -237,7 +237,7 @@
237 surf->request_client_surface_close();237 surf->request_client_surface_close();
238 return true;238 return true;
239 }239 }
240 else if ((event.key.modifiers & mir_key_modifier_alt &&240 else if ((event.key.modifiers & mir_input_event_modifier_alt &&
241 event.key.scan_code == KEY_P) ||241 event.key.scan_code == KEY_P) ||
242 (event.key.scan_code == KEY_POWER))242 (event.key.scan_code == KEY_POWER))
243 {243 {
@@ -258,15 +258,15 @@
258 compositor->start();258 compositor->start();
259 return true;259 return true;
260 }260 }
261 else if ((event.key.modifiers & mir_key_modifier_alt) &&261 else if ((event.key.modifiers & mir_input_event_modifier_alt) &&
262 (event.key.modifiers & mir_key_modifier_ctrl) &&262 (event.key.modifiers & mir_input_event_modifier_ctrl) &&
263 (event.key.scan_code == KEY_ESC))263 (event.key.scan_code == KEY_ESC))
264 {264 {
265 std::abort();265 std::abort();
266 return true;266 return true;
267 }267 }
268 else if ((event.key.modifiers & mir_key_modifier_alt) &&268 else if ((event.key.modifiers & mir_input_event_modifier_alt) &&
269 (event.key.modifiers & mir_key_modifier_ctrl) &&269 (event.key.modifiers & mir_input_event_modifier_ctrl) &&
270 (event.key.scan_code == KEY_L) &&270 (event.key.scan_code == KEY_L) &&
271 focus_controller)271 focus_controller)
272 {272 {
@@ -276,8 +276,8 @@
276 app->set_lifecycle_state(mir_lifecycle_state_will_suspend);276 app->set_lifecycle_state(mir_lifecycle_state_will_suspend);
277 }277 }
278 }278 }
279 else if ((event.key.modifiers & mir_key_modifier_alt) &&279 else if ((event.key.modifiers & mir_input_event_modifier_alt) &&
280 (event.key.modifiers & mir_key_modifier_ctrl))280 (event.key.modifiers & mir_input_event_modifier_ctrl))
281 {281 {
282 MirOrientation orientation = mir_orientation_normal;282 MirOrientation orientation = mir_orientation_normal;
283 bool rotating = true;283 bool rotating = true;
@@ -366,13 +366,13 @@
366 compositor->start();366 compositor->start();
367 return true;367 return true;
368 }368 }
369 else if (event.key.modifiers & mir_key_modifier_meta &&369 else if (event.key.modifiers & mir_input_event_modifier_meta &&
370 event.key.scan_code == KEY_N)370 event.key.scan_code == KEY_N)
371 {371 {
372 toggle(inverse);372 toggle(inverse);
373 return true;373 return true;
374 }374 }
375 else if (event.key.modifiers & mir_key_modifier_meta &&375 else if (event.key.modifiers & mir_input_event_modifier_meta &&
376 event.key.scan_code == KEY_C)376 event.key.scan_code == KEY_C)
377 {377 {
378 toggle(contrast);378 toggle(contrast);
@@ -389,7 +389,7 @@
389389
390 float new_zoom_mag = 0.0f; // zero means unchanged390 float new_zoom_mag = 0.0f; // zero means unchanged
391391
392 if (event.motion.modifiers & mir_key_modifier_meta &&392 if (event.motion.modifiers & mir_input_event_modifier_meta &&
393 action == mir_motion_action_scroll)393 action == mir_motion_action_scroll)
394 {394 {
395 zoom_exponent += event.motion.pointer_coordinates[0].vscroll;395 zoom_exponent += event.motion.pointer_coordinates[0].vscroll;
@@ -421,7 +421,7 @@
421421
422 auto const surf = focus_controller->focused_surface();422 auto const surf = focus_controller->focused_surface();
423 if (surf &&423 if (surf &&
424 (event.motion.modifiers & mir_key_modifier_alt ||424 (event.motion.modifiers & mir_input_event_modifier_alt ||
425 fingers >= 3))425 fingers >= 3))
426 {426 {
427 geometry::Displacement pinch_dir;427 geometry::Displacement pinch_dir;
428428
=== modified file 'src/client/events/event_builders.cpp'
--- src/client/events/event_builders.cpp 2015-05-05 05:53:22 +0000
+++ src/client/events/event_builders.cpp 2015-05-05 05:53:22 +0000
@@ -107,49 +107,6 @@
107 BOOST_THROW_EXCEPTION(std::logic_error("Invalid key action"));107 BOOST_THROW_EXCEPTION(std::logic_error("Invalid key action"));
108 }108 }
109}109}
110MirKeyModifier old_modifiers_from_new(MirInputEventModifiers modifiers)
111{
112 int old_modifiers = mir_key_modifier_none;
113
114 if (modifiers & mir_input_event_modifier_none)
115 old_modifiers |= mir_key_modifier_none;
116 if (modifiers & mir_input_event_modifier_alt)
117 old_modifiers |= mir_key_modifier_alt;
118 if (modifiers & mir_input_event_modifier_alt_left)
119 old_modifiers |= mir_key_modifier_alt_left;
120 if (modifiers & mir_input_event_modifier_alt_right)
121 old_modifiers |= mir_key_modifier_alt_right;
122 if (modifiers & mir_input_event_modifier_shift)
123 old_modifiers |= mir_key_modifier_shift;
124 if (modifiers & mir_input_event_modifier_shift_left)
125 old_modifiers |= mir_key_modifier_shift_left;
126 if (modifiers & mir_input_event_modifier_shift_right)
127 old_modifiers |= mir_key_modifier_shift_right;
128 if (modifiers & mir_input_event_modifier_sym)
129 old_modifiers |= mir_key_modifier_sym;
130 if (modifiers & mir_input_event_modifier_function)
131 old_modifiers |= mir_key_modifier_function;
132 if (modifiers & mir_input_event_modifier_ctrl)
133 old_modifiers |= mir_key_modifier_ctrl;
134 if (modifiers & mir_input_event_modifier_ctrl_left)
135 old_modifiers |= mir_key_modifier_ctrl_left;
136 if (modifiers & mir_input_event_modifier_ctrl_right)
137 old_modifiers |= mir_key_modifier_ctrl_right;
138 if (modifiers & mir_input_event_modifier_meta)
139 old_modifiers |= mir_key_modifier_meta;
140 if (modifiers & mir_input_event_modifier_meta_left)
141 old_modifiers |= mir_key_modifier_meta_left;
142 if (modifiers & mir_input_event_modifier_meta_right)
143 old_modifiers |= mir_key_modifier_meta_right;
144 if (modifiers & mir_input_event_modifier_caps_lock)
145 old_modifiers |= mir_key_modifier_caps_lock;
146 if (modifiers & mir_input_event_modifier_num_lock)
147 old_modifiers |= mir_key_modifier_num_lock;
148 if (modifiers & mir_input_event_modifier_scroll_lock)
149 old_modifiers |= mir_key_modifier_scroll_lock;
150
151 return static_cast<MirKeyModifier>(old_modifiers);
152}
153}110}
154111
155mir::EventUPtr mev::make_event(MirInputDeviceId device_id, int64_t timestamp,112mir::EventUPtr mev::make_event(MirInputDeviceId device_id, int64_t timestamp,
@@ -168,7 +125,7 @@
168 kev.repeat_count = 1;125 kev.repeat_count = 1;
169 kev.key_code = key_code;126 kev.key_code = key_code;
170 kev.scan_code = scan_code;127 kev.scan_code = scan_code;
171 kev.modifiers = old_modifiers_from_new(modifiers);128 kev.modifiers = modifiers;
172129
173 return make_event_uptr(e);130 return make_event_uptr(e);
174}131}
@@ -214,7 +171,7 @@
214 auto& mev = e->motion;171 auto& mev = e->motion;
215 mev.device_id = device_id;172 mev.device_id = device_id;
216 mev.event_time = timestamp;173 mev.event_time = timestamp;
217 mev.modifiers = old_modifiers_from_new(modifiers);174 mev.modifiers = modifiers;
218 mev.action = mir_motion_action_move;175 mev.action = mir_motion_action_move;
219 mev.source_id = AINPUT_SOURCE_TOUCHSCREEN;176 mev.source_id = AINPUT_SOURCE_TOUCHSCREEN;
220 177
@@ -314,7 +271,7 @@
314 auto& mev = e->motion;271 auto& mev = e->motion;
315 mev.device_id = device_id;272 mev.device_id = device_id;
316 mev.event_time = timestamp;273 mev.event_time = timestamp;
317 mev.modifiers = old_modifiers_from_new(modifiers);274 mev.modifiers = modifiers;
318 mev.action = old_action_from_pointer_action(action);275 mev.action = old_action_from_pointer_action(action);
319 mev.source_id = AINPUT_SOURCE_MOUSE;276 mev.source_id = AINPUT_SOURCE_MOUSE;
320 277
321278
=== modified file 'src/client/input/android/CMakeLists.txt'
--- src/client/input/android/CMakeLists.txt 2015-03-31 02:35:42 +0000
+++ src/client/input/android/CMakeLists.txt 2015-05-05 05:53:22 +0000
@@ -19,6 +19,7 @@
19 ${CMAKE_CURRENT_SOURCE_DIR}/android_input_lexicon.cpp19 ${CMAKE_CURRENT_SOURCE_DIR}/android_input_lexicon.cpp
20 ${CMAKE_CURRENT_SOURCE_DIR}/android_input_receiver.cpp20 ${CMAKE_CURRENT_SOURCE_DIR}/android_input_receiver.cpp
21 ${CMAKE_CURRENT_SOURCE_DIR}/android_input_platform.cpp21 ${CMAKE_CURRENT_SOURCE_DIR}/android_input_platform.cpp
22 ${CMAKE_CURRENT_SOURCE_DIR}/event_conversion_helpers.cpp
22)23)
2324
24set(ANDROID_SHARED_INPUT_SOURCES ${ANDROID_SHARED_INPUT_SOURCES} PARENT_SCOPE)25set(ANDROID_SHARED_INPUT_SOURCES ${ANDROID_SHARED_INPUT_SOURCES} PARENT_SCOPE)
2526
=== modified file 'src/client/input/android/android_input_lexicon.cpp'
--- src/client/input/android/android_input_lexicon.cpp 2015-05-05 05:53:22 +0000
+++ src/client/input/android/android_input_lexicon.cpp 2015-05-05 05:53:22 +0000
@@ -18,6 +18,7 @@
18 */18 */
1919
20#include "mir/input/android/android_input_lexicon.h"20#include "mir/input/android/android_input_lexicon.h"
21#include "mir/input/android/event_conversion_helpers.h"
21#include "mir/events/event_private.h"22#include "mir/events/event_private.h"
2223
23#include <androidfw/Input.h>24#include <androidfw/Input.h>
@@ -35,7 +36,7 @@
35 mir_event.key.device_id = android_event->getDeviceId();36 mir_event.key.device_id = android_event->getDeviceId();
36 mir_event.key.source_id = android_event->getSource();37 mir_event.key.source_id = android_event->getSource();
37 mir_event.key.action = static_cast<MirKeyAction>(kev->getAction());38 mir_event.key.action = static_cast<MirKeyAction>(kev->getAction());
38 mir_event.key.modifiers = kev->getMetaState();39 mir_event.key.modifiers = mia::mir_modifiers_from_android(kev->getMetaState());
39 mir_event.key.key_code = kev->getKeyCode();40 mir_event.key.key_code = kev->getKeyCode();
40 mir_event.key.scan_code = kev->getScanCode();41 mir_event.key.scan_code = kev->getScanCode();
41 mir_event.key.repeat_count = kev->getRepeatCount();42 mir_event.key.repeat_count = kev->getRepeatCount();
@@ -49,7 +50,7 @@
49 mir_event.motion.device_id = android_event->getDeviceId();50 mir_event.motion.device_id = android_event->getDeviceId();
50 mir_event.motion.source_id = android_event->getSource();51 mir_event.motion.source_id = android_event->getSource();
51 mir_event.motion.action = mev->getAction();52 mir_event.motion.action = mev->getAction();
52 mir_event.motion.modifiers = mev->getMetaState();53 mir_event.motion.modifiers = mia::mir_modifiers_from_android(mev->getMetaState());
53 mir_event.motion.button_state = static_cast<MirMotionButton>(mev->getButtonState());54 mir_event.motion.button_state = static_cast<MirMotionButton>(mev->getButtonState());
54 mir_event.motion.event_time = mev->getEventTime().count();55 mir_event.motion.event_time = mev->getEventTime().count();
55 mir_event.motion.pointer_count = mev->getPointerCount();56 mir_event.motion.pointer_count = mev->getPointerCount();
5657
=== added file 'src/client/input/android/event_conversion_helpers.cpp'
--- src/client/input/android/event_conversion_helpers.cpp 1970-01-01 00:00:00 +0000
+++ src/client/input/android/event_conversion_helpers.cpp 2015-05-05 05:53:22 +0000
@@ -0,0 +1,70 @@
1/*
2 * Copyright © 2015 Canonical Ltd.
3 *
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Robert Carr <robert.carr@canonical.com>
17 */
18
19#include "mir/input/android/event_conversion_helpers.h"
20
21#include <androidfw/Input.h>
22
23namespace mia = mir::input::android;
24
25MirInputEventModifiers mia::mir_modifiers_from_android(int32_t android_modifiers)
26{
27 MirInputEventModifiers ret = 0;
28 if (android_modifiers == 0) ret |= mir_input_event_modifier_none;
29 if (android_modifiers & AMETA_ALT_ON) ret |= mir_input_event_modifier_alt;
30 if (android_modifiers & AMETA_ALT_LEFT_ON) ret |= mir_input_event_modifier_alt_left;
31 if (android_modifiers & AMETA_ALT_RIGHT_ON) ret |= mir_input_event_modifier_alt_right;
32 if (android_modifiers & AMETA_SHIFT_ON) ret |= mir_input_event_modifier_shift;
33 if (android_modifiers & AMETA_SHIFT_LEFT_ON) ret |= mir_input_event_modifier_shift_left;
34 if (android_modifiers & AMETA_SHIFT_RIGHT_ON) ret |= mir_input_event_modifier_shift_right;
35 if (android_modifiers & AMETA_SYM_ON) ret |= mir_input_event_modifier_sym;
36 if (android_modifiers & AMETA_FUNCTION_ON) ret |= mir_input_event_modifier_function;
37 if (android_modifiers & AMETA_CTRL_ON) ret |= mir_input_event_modifier_ctrl;
38 if (android_modifiers & AMETA_CTRL_LEFT_ON) ret |= mir_input_event_modifier_ctrl_left;
39 if (android_modifiers & AMETA_CTRL_RIGHT_ON) ret |= mir_input_event_modifier_ctrl_right;
40 if (android_modifiers & AMETA_META_ON) ret |= mir_input_event_modifier_meta;
41 if (android_modifiers & AMETA_META_LEFT_ON) ret |= mir_input_event_modifier_meta_left;
42 if (android_modifiers & AMETA_META_RIGHT_ON) ret |= mir_input_event_modifier_meta_right;
43 if (android_modifiers & AMETA_CAPS_LOCK_ON) ret |= mir_input_event_modifier_caps_lock;
44 if (android_modifiers & AMETA_NUM_LOCK_ON) ret |= mir_input_event_modifier_num_lock;
45 if (android_modifiers & AMETA_SCROLL_LOCK_ON) ret |= mir_input_event_modifier_scroll_lock;
46 return ret;
47}
48
49int32_t mia::android_modifiers_from_mir(MirInputEventModifiers mir_modifiers)
50{
51 int32_t ret = AMETA_NONE;
52 if (mir_modifiers & mir_input_event_modifier_alt) ret |= AMETA_ALT_ON;
53 if (mir_modifiers & mir_input_event_modifier_alt_left) ret |= AMETA_ALT_LEFT_ON;
54 if (mir_modifiers & mir_input_event_modifier_alt_right) ret |= AMETA_ALT_RIGHT_ON;
55 if (mir_modifiers & mir_input_event_modifier_shift) ret |= AMETA_SHIFT_ON;
56 if (mir_modifiers & mir_input_event_modifier_shift_left) ret |= AMETA_SHIFT_LEFT_ON;
57 if (mir_modifiers & mir_input_event_modifier_shift_right) ret |= AMETA_SHIFT_RIGHT_ON;
58 if (mir_modifiers & mir_input_event_modifier_sym) ret |= AMETA_SYM_ON;
59 if (mir_modifiers & mir_input_event_modifier_function) ret |= AMETA_FUNCTION_ON;
60 if (mir_modifiers & mir_input_event_modifier_ctrl) ret |= AMETA_CTRL_ON;
61 if (mir_modifiers & mir_input_event_modifier_ctrl_left) ret |= AMETA_CTRL_LEFT_ON;
62 if (mir_modifiers & mir_input_event_modifier_ctrl_right) ret |= AMETA_CTRL_RIGHT_ON;
63 if (mir_modifiers & mir_input_event_modifier_meta) ret |= AMETA_META_ON;
64 if (mir_modifiers & mir_input_event_modifier_meta_left) ret |= AMETA_META_LEFT_ON;
65 if (mir_modifiers & mir_input_event_modifier_meta_right) ret |= AMETA_META_RIGHT_ON;
66 if (mir_modifiers & mir_input_event_modifier_caps_lock) ret |= AMETA_CAPS_LOCK_ON;
67 if (mir_modifiers & mir_input_event_modifier_num_lock) ret |= AMETA_NUM_LOCK_ON;
68 if (mir_modifiers & mir_input_event_modifier_scroll_lock) ret |= AMETA_SCROLL_LOCK_ON;
69 return ret;
70}
071
=== modified file 'src/client/input/input_event.cpp'
--- src/client/input/input_event.cpp 2015-04-01 19:39:19 +0000
+++ src/client/input/input_event.cpp 2015-05-05 05:53:22 +0000
@@ -239,66 +239,17 @@
239 return old_kev.scan_code;239 return old_kev.scan_code;
240}240}
241241
242namespace
243{
244MirInputEventModifiers old_modifiers_to_new(unsigned int old_modifier)
245{
246 MirInputEventModifiers modifier = 0;
247
248 if (old_modifier & mir_key_modifier_none)
249 modifier |= mir_input_event_modifier_none;
250 if (old_modifier & mir_key_modifier_alt)
251 modifier |= mir_input_event_modifier_alt;
252 if (old_modifier & mir_key_modifier_alt_left)
253 modifier |= mir_input_event_modifier_alt_left;
254 if (old_modifier & mir_key_modifier_alt_right)
255 modifier |= mir_input_event_modifier_alt_right;
256 if (old_modifier & mir_key_modifier_shift)
257 modifier |= mir_input_event_modifier_shift;
258 if (old_modifier & mir_key_modifier_shift_left)
259 modifier |= mir_input_event_modifier_shift_left;
260 if (old_modifier & mir_key_modifier_shift_right)
261 modifier |= mir_input_event_modifier_shift_right;
262 if (old_modifier & mir_key_modifier_sym)
263 modifier |= mir_input_event_modifier_sym;
264 if (old_modifier & mir_key_modifier_function)
265 modifier |= mir_input_event_modifier_function;
266 if (old_modifier & mir_key_modifier_ctrl)
267 modifier |= mir_input_event_modifier_ctrl;
268 if (old_modifier & mir_key_modifier_ctrl_left)
269 modifier |= mir_input_event_modifier_ctrl_left;
270 if (old_modifier & mir_key_modifier_ctrl_right)
271 modifier |= mir_input_event_modifier_ctrl_right;
272 if (old_modifier & mir_key_modifier_meta)
273 modifier |= mir_input_event_modifier_meta;
274 if (old_modifier & mir_key_modifier_meta_left)
275 modifier |= mir_input_event_modifier_meta_left;
276 if (old_modifier & mir_key_modifier_meta_right)
277 modifier |= mir_input_event_modifier_meta_right;
278 if (old_modifier & mir_key_modifier_caps_lock)
279 modifier |= mir_input_event_modifier_caps_lock;
280 if (old_modifier & mir_key_modifier_num_lock)
281 modifier |= mir_input_event_modifier_num_lock;
282 if (old_modifier & mir_key_modifier_scroll_lock)
283 modifier |= mir_input_event_modifier_scroll_lock;
284
285 if (modifier)
286 return modifier;
287 return mir_input_event_modifier_none;
288}
289}
290
291MirInputEventModifiers mir_keyboard_event_modifiers(MirKeyboardEvent const* kev)242MirInputEventModifiers mir_keyboard_event_modifiers(MirKeyboardEvent const* kev)
292{ 243{
293 auto const& old_kev = old_kev_from_new(kev);244 auto const& old_kev = old_kev_from_new(kev);
294 return old_modifiers_to_new(old_kev.modifiers);245 return old_kev.modifiers;
295}246}
296/* Touch event accessors */247/* Touch event accessors */
297248
298MirInputEventModifiers mir_touch_event_modifiers(MirTouchEvent const* tev)249MirInputEventModifiers mir_touch_event_modifiers(MirTouchEvent const* tev)
299{ 250{
300 auto const& old_mev = old_mev_from_new(tev);251 auto const& old_mev = old_mev_from_new(tev);
301 return old_modifiers_to_new(old_mev.modifiers);252 return old_mev.modifiers;
302}253}
303254
304MirTouchEvent const* mir_input_event_get_touch_event(MirInputEvent const* ev)255MirTouchEvent const* mir_input_event_get_touch_event(MirInputEvent const* ev)
@@ -453,7 +404,7 @@
453MirInputEventModifiers mir_pointer_event_modifiers(MirPointerEvent const* pev)404MirInputEventModifiers mir_pointer_event_modifiers(MirPointerEvent const* pev)
454{ 405{
455 auto const& old_mev = old_mev_from_new(pev);406 auto const& old_mev = old_mev_from_new(pev);
456 return old_modifiers_to_new(old_mev.modifiers);407 return old_mev.modifiers;
457}408}
458409
459MirPointerAction mir_pointer_event_action(MirPointerEvent const* pev)410MirPointerAction mir_pointer_event_action(MirPointerEvent const* pev)
460411
=== modified file 'src/client/symbols.map'
--- src/client/symbols.map 2015-04-30 17:41:03 +0000
+++ src/client/symbols.map 2015-05-05 05:53:22 +0000
@@ -200,6 +200,8 @@
200 mir::events::make_event*;200 mir::events::make_event*;
201 mir::events::add_touch*;201 mir::events::add_touch*;
202 mir::input::android::Lexicon::translate*;202 mir::input::android::Lexicon::translate*;
203 mir::input::android::android_modifiers_from_mir*;
204 mir::input::android::mir_modifiers_from_android*;
203 mir::client::DefaultConnectionConfiguration::DefaultConnectionConfiguration*;205 mir::client::DefaultConnectionConfiguration::DefaultConnectionConfiguration*;
204 mir::client::DefaultConnectionConfiguration::the_surface_map*;206 mir::client::DefaultConnectionConfiguration::the_surface_map*;
205 mir::client::DefaultConnectionConfiguration::the_rpc_channel*;207 mir::client::DefaultConnectionConfiguration::the_rpc_channel*;
206208
=== modified file 'src/include/common/mir/events/event_private.h'
--- src/include/common/mir/events/event_private.h 2015-05-05 05:53:22 +0000
+++ src/include/common/mir/events/event_private.h 2015-05-05 05:53:22 +0000
@@ -51,27 +51,6 @@
51} MirKeyAction;51} MirKeyAction;
5252
53typedef enum {53typedef enum {
54 mir_key_modifier_none = 0,
55 mir_key_modifier_alt = 0x02,
56 mir_key_modifier_alt_left = 0x10,
57 mir_key_modifier_alt_right = 0x20,
58 mir_key_modifier_shift = 0x01,
59 mir_key_modifier_shift_left = 0x40,
60 mir_key_modifier_shift_right = 0x80,
61 mir_key_modifier_sym = 0x04,
62 mir_key_modifier_function = 0x08,
63 mir_key_modifier_ctrl = 0x1000,
64 mir_key_modifier_ctrl_left = 0x2000,
65 mir_key_modifier_ctrl_right = 0x4000,
66 mir_key_modifier_meta = 0x10000,
67 mir_key_modifier_meta_left = 0x20000,
68 mir_key_modifier_meta_right = 0x40000,
69 mir_key_modifier_caps_lock = 0x100000,
70 mir_key_modifier_num_lock = 0x200000,
71 mir_key_modifier_scroll_lock = 0x400000
72} MirKeyModifier;
73
74typedef enum {
75 mir_motion_action_down = 0,54 mir_motion_action_down = 0,
76 mir_motion_action_up = 1,55 mir_motion_action_up = 1,
77 mir_motion_action_move = 2,56 mir_motion_action_move = 2,
@@ -111,7 +90,7 @@
111 int32_t device_id;90 int32_t device_id;
112 int32_t source_id;91 int32_t source_id;
113 MirKeyAction action;92 MirKeyAction action;
114 unsigned int modifiers;93 MirInputEventModifiers modifiers;
11594
116 int32_t key_code;95 int32_t key_code;
117 int32_t scan_code;96 int32_t scan_code;
@@ -150,7 +129,7 @@
150 * this way for now until we can drop SF/Hybris support in QtUbuntu.129 * this way for now until we can drop SF/Hybris support in QtUbuntu.
151 */130 */
152 int action;131 int action;
153 unsigned int modifiers;132 MirInputEventModifiers modifiers;
154133
155 MirMotionButton button_state;134 MirMotionButton button_state;
156 nsecs_t event_time;135 nsecs_t event_time;
157136
=== added file 'src/include/common/mir/input/android/event_conversion_helpers.h'
--- src/include/common/mir/input/android/event_conversion_helpers.h 1970-01-01 00:00:00 +0000
+++ src/include/common/mir/input/android/event_conversion_helpers.h 2015-05-05 05:53:22 +0000
@@ -0,0 +1,36 @@
1/*
2 * Copyright © 2015 Canonical Ltd.
3 *
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Robert Carr <robert.carr@canonical.com>
17 */
18
19#ifndef MIR_INPUT_EVENT_CONVERSION_HELPERS_H_
20#define MIR_INPUT_EVENT_CONVERSION_HELPERS_H_
21
22#include "mir_toolkit/event.h"
23
24namespace mir
25{
26namespace input
27{
28namespace android
29{
30MirInputEventModifiers mir_modifiers_from_android(int32_t android_modifiers);
31int32_t android_modifiers_from_mir(MirInputEventModifiers modifiers);
32}
33}
34}
35
36#endif // MIR_INPUT_EVENT_CONVERSION_HELPERS_H_
037
=== modified file 'src/server/input/android/android_input_dispatcher.cpp'
--- src/server/input/android/android_input_dispatcher.cpp 2015-05-05 05:53:22 +0000
+++ src/server/input/android/android_input_dispatcher.cpp 2015-05-05 05:53:22 +0000
@@ -21,6 +21,7 @@
21#include "android_input_constants.h"21#include "android_input_constants.h"
22#include "android_input_thread.h"22#include "android_input_thread.h"
2323
24#include "mir/input/android/event_conversion_helpers.h"
24#include "mir/events/event_private.h"25#include "mir/events/event_private.h"
2526
26#include <InputListener.h> // NotifyArgs27#include <InputListener.h> // NotifyArgs
@@ -75,7 +76,7 @@
75 0, /* flags */76 0, /* flags */
76 event.key.key_code,77 event.key.key_code,
77 event.key.scan_code,78 event.key.scan_code,
78 event.key.modifiers,79 mia::android_modifiers_from_mir(event.key.modifiers),
79 std::chrono::nanoseconds(event.key.event_time));80 std::chrono::nanoseconds(event.key.event_time));
8081
81 dispatcher->notifyKey(&notify_key_args);82 dispatcher->notifyKey(&notify_key_args);
@@ -111,7 +112,7 @@
111 policy_flags,112 policy_flags,
112 event.motion.action,113 event.motion.action,
113 0, /* flags */114 0, /* flags */
114 event.motion.modifiers,115 mia::android_modifiers_from_mir(event.motion.modifiers),
115 event.motion.button_state,116 event.motion.button_state,
116 0, /* edge_flags */117 0, /* edge_flags */
117 event.motion.pointer_count,118 event.motion.pointer_count,
118119
=== modified file 'src/server/input/android/input_sender.cpp'
--- src/server/input/android/input_sender.cpp 2015-05-05 05:53:22 +0000
+++ src/server/input/android/input_sender.cpp 2015-05-05 05:53:22 +0000
@@ -21,6 +21,7 @@
21#include "input_sender.h"21#include "input_sender.h"
22#include "input_send_entry.h"22#include "input_send_entry.h"
2323
24#include "mir/input/android/event_conversion_helpers.h"
24#include "mir/input/input_send_observer.h"25#include "mir/input/input_send_observer.h"
25#include "mir/input/input_channel.h"26#include "mir/input/input_channel.h"
26#include "mir/input/input_report.h"27#include "mir/input/input_report.h"
@@ -244,7 +245,7 @@
244 0, /* Flags */245 0, /* Flags */
245 event.key_code,246 event.key_code,
246 event.scan_code,247 event.scan_code,
247 event.modifiers,248 mia::android_modifiers_from_mir(event.modifiers),
248 event.repeat_count,249 event.repeat_count,
249 std::chrono::nanoseconds(event.event_time),250 std::chrono::nanoseconds(event.event_time),
250 std::chrono::nanoseconds(event.event_time)251 std::chrono::nanoseconds(event.event_time)
@@ -284,7 +285,7 @@
284 event.action,285 event.action,
285 0, /* flags */286 0, /* flags */
286 0, /* edge flags */287 0, /* edge flags */
287 static_cast<int32_t>(event.modifiers),288 mia::android_modifiers_from_mir(event.modifiers),
288 static_cast<int32_t>(event.button_state),289 static_cast<int32_t>(event.button_state),
289 0.0f, // event.x_offset,290 0.0f, // event.x_offset,
290 0.0f, // event.y_offset,291 0.0f, // event.y_offset,
291292
=== modified file 'src/server/input/android/input_translator.cpp'
--- src/server/input/android/input_translator.cpp 2015-05-05 05:53:22 +0000
+++ src/server/input/android/input_translator.cpp 2015-05-05 05:53:22 +0000
@@ -18,6 +18,7 @@
1818
19#include "input_translator.h"19#include "input_translator.h"
2020
21#include "mir/input/android/event_conversion_helpers.h"
21#include "mir/events/event_private.h"22#include "mir/events/event_private.h"
2223
23#include "androidfw/Input.h"24#include "androidfw/Input.h"
@@ -100,25 +101,31 @@
100 if (!args)101 if (!args)
101 return;102 return;
102 uint32_t policy_flags = args->policyFlags;103 uint32_t policy_flags = args->policyFlags;
103 int32_t modifiers = args->metaState;104 MirInputEventModifiers mir_modifiers = mia::mir_modifiers_from_android(args->metaState);
104105
105 if (policy_flags & droidinput::POLICY_FLAG_ALT)106 if (policy_flags & droidinput::POLICY_FLAG_ALT)
106 modifiers |= mir_key_modifier_alt | mir_key_modifier_alt_left;107 mir_modifiers |= mir_input_event_modifier_alt | mir_input_event_modifier_alt_left;
107 if (policy_flags & droidinput::POLICY_FLAG_ALT_GR)108 if (policy_flags & droidinput::POLICY_FLAG_ALT_GR)
108 modifiers |= mir_key_modifier_alt | mir_key_modifier_alt_right;109 mir_modifiers |= mir_input_event_modifier_alt | mir_input_event_modifier_alt_right;
109 if (policy_flags & droidinput::POLICY_FLAG_SHIFT)110 if (policy_flags & droidinput::POLICY_FLAG_SHIFT)
110 modifiers |= mir_key_modifier_shift | mir_key_modifier_shift_left;111 mir_modifiers |= mir_input_event_modifier_shift | mir_input_event_modifier_shift_left;
111 if (policy_flags & droidinput::POLICY_FLAG_CAPS_LOCK)112 if (policy_flags & droidinput::POLICY_FLAG_CAPS_LOCK)
112 modifiers |= mir_key_modifier_caps_lock;113 mir_modifiers |= mir_input_event_modifier_caps_lock;
113 if (policy_flags & droidinput::POLICY_FLAG_FUNCTION)114 if (policy_flags & droidinput::POLICY_FLAG_FUNCTION)
114 modifiers |= mir_key_modifier_function;115 mir_modifiers |= mir_input_event_modifier_function;
116
117 // If we've added a modifier to none we have to remove the none flag.
118 if (mir_modifiers != mir_input_event_modifier_none && mir_modifiers & mir_input_event_modifier_none)
119 {
120 mir_modifiers &= ~mir_input_event_modifier_none;
121 }
115122
116 MirEvent mir_event;123 MirEvent mir_event;
117 mir_event.type = mir_event_type_key;124 mir_event.type = mir_event_type_key;
118 mir_event.key.device_id = args->deviceId;125 mir_event.key.device_id = args->deviceId;
119 mir_event.key.source_id = args->source;126 mir_event.key.source_id = args->source;
120 mir_event.key.action = static_cast<MirKeyAction>(args->action);127 mir_event.key.action = static_cast<MirKeyAction>(args->action);
121 mir_event.key.modifiers = modifiers;128 mir_event.key.modifiers = mir_modifiers;
122 mir_event.key.key_code = args->keyCode;129 mir_event.key.key_code = args->keyCode;
123 mir_event.key.scan_code = args->scanCode;130 mir_event.key.scan_code = args->scanCode;
124 mir_event.key.repeat_count = 0;131 mir_event.key.repeat_count = 0;
@@ -140,7 +147,7 @@
140 mir_event.motion.device_id = args->deviceId;147 mir_event.motion.device_id = args->deviceId;
141 mir_event.motion.source_id = args->source;148 mir_event.motion.source_id = args->source;
142 mir_event.motion.action = args->action;149 mir_event.motion.action = args->action;
143 mir_event.motion.modifiers = args->metaState;150 mir_event.motion.modifiers = mia::mir_modifiers_from_android(args->metaState);
144 mir_event.motion.button_state = static_cast<MirMotionButton>(args->buttonState);151 mir_event.motion.button_state = static_cast<MirMotionButton>(args->buttonState);
145 mir_event.motion.event_time = args->eventTime.count();152 mir_event.motion.event_time = args->eventTime.count();
146 mir_event.motion.pointer_count = args->pointerCount;153 mir_event.motion.pointer_count = args->pointerCount;
147154
=== modified file 'src/server/input/vt_filter.cpp'
--- src/server/input/vt_filter.cpp 2015-04-01 19:39:19 +0000
+++ src/server/input/vt_filter.cpp 2015-05-05 05:53:22 +0000
@@ -39,8 +39,8 @@
39{39{
40 if (event.type == mir_event_type_key &&40 if (event.type == mir_event_type_key &&
41 event.key.action == mir_key_action_down &&41 event.key.action == mir_key_action_down &&
42 (event.key.modifiers & mir_key_modifier_alt) &&42 (event.key.modifiers & mir_input_event_modifier_alt) &&
43 (event.key.modifiers & mir_key_modifier_ctrl))43 (event.key.modifiers & mir_input_event_modifier_ctrl))
44 {44 {
45 switch (event.key.scan_code)45 switch (event.key.scan_code)
46 {46 {
4747
=== modified file 'tests/unit-tests/input/android/test_android_input_dispatcher.cpp'
--- tests/unit-tests/input/android/test_android_input_dispatcher.cpp 2015-05-05 05:53:22 +0000
+++ tests/unit-tests/input/android/test_android_input_dispatcher.cpp 2015-05-05 05:53:22 +0000
@@ -179,7 +179,7 @@
179 event.motion.device_id = 3;179 event.motion.device_id = 3;
180 event.motion.source_id = 4;180 event.motion.source_id = 4;
181 event.motion.action = mir_motion_action_scroll;181 event.motion.action = mir_motion_action_scroll;
182 event.motion.modifiers = 6;182 event.motion.modifiers = mir_input_event_modifier_shift,
183 event.motion.button_state =183 event.motion.button_state =
184 static_cast<MirMotionButton>(mir_motion_button_forward | mir_motion_button_secondary);184 static_cast<MirMotionButton>(mir_motion_button_forward | mir_motion_button_secondary);
185185
@@ -214,7 +214,7 @@
214 default_policy_flags,214 default_policy_flags,
215 event.motion.action,215 event.motion.action,
216 0, /* flags */216 0, /* flags */
217 event.motion.modifiers,217 AMETA_SHIFT_ON,
218 event.motion.button_state,218 event.motion.button_state,
219 0, /* edge_flags */219 0, /* edge_flags */
220 event.motion.pointer_count,220 event.motion.pointer_count,
@@ -240,7 +240,7 @@
240 event.key.scan_code = 4;240 event.key.scan_code = 4;
241 event.key.key_code = 5;241 event.key.key_code = 5;
242 event.key.repeat_count = 0;242 event.key.repeat_count = 0;
243 event.key.modifiers = 7;243 event.key.modifiers = mir_input_event_modifier_shift;
244244
245 droidinput::NotifyKeyArgs expected(std::chrono::nanoseconds(event.key.event_time),245 droidinput::NotifyKeyArgs expected(std::chrono::nanoseconds(event.key.event_time),
246 event.key.device_id,246 event.key.device_id,
@@ -250,7 +250,7 @@
250 0, /* flags */250 0, /* flags */
251 event.key.key_code,251 event.key.key_code,
252 event.key.scan_code,252 event.key.scan_code,
253 event.key.modifiers,253 AMETA_SHIFT_ON,
254 std::chrono::nanoseconds(event.key.event_time));254 std::chrono::nanoseconds(event.key.event_time));
255255
256 EXPECT_CALL(*dispatcher, notifyKey(KeyArgsMatches(expected)));256 EXPECT_CALL(*dispatcher, notifyKey(KeyArgsMatches(expected)));
257257
=== modified file 'tests/unit-tests/input/android/test_android_input_lexicon.cpp'
--- tests/unit-tests/input/android/test_android_input_lexicon.cpp 2015-05-05 05:53:22 +0000
+++ tests/unit-tests/input/android/test_android_input_lexicon.cpp 2015-05-05 05:53:22 +0000
@@ -38,7 +38,7 @@
38 const int32_t flags = 4;38 const int32_t flags = 4;
39 const int32_t key_code = 5;39 const int32_t key_code = 5;
40 const int32_t scan_code = 6;40 const int32_t scan_code = 6;
41 const int32_t meta_state = 7;41 const int32_t meta_state = AMETA_ALT_ON;
42 const int32_t repeat_count = 8;42 const int32_t repeat_count = 8;
43 auto const down_time = std::chrono::nanoseconds(9);43 auto const down_time = std::chrono::nanoseconds(9);
44 auto const event_time = std::chrono::nanoseconds(10);44 auto const event_time = std::chrono::nanoseconds(10);
@@ -54,7 +54,7 @@
54 EXPECT_EQ(device_id, mir_ev.key.device_id);54 EXPECT_EQ(device_id, mir_ev.key.device_id);
55 EXPECT_EQ(source_id, mir_ev.key.source_id);55 EXPECT_EQ(source_id, mir_ev.key.source_id);
56 EXPECT_EQ(action, mir_ev.key.action);56 EXPECT_EQ(action, mir_ev.key.action);
57 EXPECT_EQ((unsigned int)meta_state, mir_ev.key.modifiers);57 EXPECT_EQ(mir_input_event_modifier_alt, mir_ev.key.modifiers);
5858
59 auto mir_key_ev = &mir_ev.key;59 auto mir_key_ev = &mir_ev.key;
60 // Key event specific properties60 // Key event specific properties
@@ -129,7 +129,6 @@
129 EXPECT_EQ(device_id, mir_ev.motion.device_id);129 EXPECT_EQ(device_id, mir_ev.motion.device_id);
130 EXPECT_EQ(source_id, mir_ev.motion.source_id);130 EXPECT_EQ(source_id, mir_ev.motion.source_id);
131 EXPECT_EQ(action, mir_ev.motion.action);131 EXPECT_EQ(action, mir_ev.motion.action);
132 EXPECT_EQ((unsigned int)meta_state, mir_ev.motion.modifiers);
133132
134 // Motion event specific properties133 // Motion event specific properties
135 EXPECT_EQ(mir_ev.type, mir_event_type_motion);134 EXPECT_EQ(mir_ev.type, mir_event_type_motion);
@@ -237,7 +236,6 @@
237 EXPECT_EQ(device_id, mir_ev.motion.device_id);236 EXPECT_EQ(device_id, mir_ev.motion.device_id);
238 EXPECT_EQ(source_id, mir_ev.motion.source_id);237 EXPECT_EQ(source_id, mir_ev.motion.source_id);
239 EXPECT_EQ(action, mir_ev.motion.action);238 EXPECT_EQ(action, mir_ev.motion.action);
240 EXPECT_EQ((unsigned int)meta_state, mir_ev.motion.modifiers);
241239
242 // Motion event specific properties240 // Motion event specific properties
243 EXPECT_EQ(mir_ev.type, mir_event_type_motion);241 EXPECT_EQ(mir_ev.type, mir_event_type_motion);
244242
=== modified file 'tests/unit-tests/input/android/test_input_translator.cpp'
--- tests/unit-tests/input/android/test_input_translator.cpp 2015-05-05 05:53:22 +0000
+++ tests/unit-tests/input/android/test_input_translator.cpp 2015-05-05 05:53:22 +0000
@@ -252,7 +252,7 @@
252 expected.key.scan_code = 4;252 expected.key.scan_code = 4;
253 expected.key.key_code = 5;253 expected.key.key_code = 5;
254 expected.key.repeat_count = 0;254 expected.key.repeat_count = 0;
255 expected.key.modifiers = 7;255 expected.key.modifiers = mir_input_event_modifier_shift;
256256
257 InSequence seq;257 InSequence seq;
258 EXPECT_CALL(dispatcher, dispatch(mt::MirKeyEventMatches(expected))).Times(1);258 EXPECT_CALL(dispatcher, dispatch(mt::MirKeyEventMatches(expected))).Times(1);
@@ -265,7 +265,7 @@
265 0, /* flags */265 0, /* flags */
266 expected.key.key_code,266 expected.key.key_code,
267 expected.key.scan_code,267 expected.key.scan_code,
268 expected.key.modifiers,268 AMETA_SHIFT_ON,
269 std::chrono::nanoseconds(expected.key.event_time));269 std::chrono::nanoseconds(expected.key.event_time));
270270
271 translator.notifyKey(&notified);271 translator.notifyKey(&notified);
272272
=== modified file 'tests/unit-tests/input/test_input_event.cpp'
--- tests/unit-tests/input/test_input_event.cpp 2015-04-01 19:39:19 +0000
+++ tests/unit-tests/input/test_input_event.cpp 2015-05-05 05:53:22 +0000
@@ -150,17 +150,17 @@
150{150{
151 xkb_keysym_t key_code = 171;151 xkb_keysym_t key_code = 171;
152 int scan_code = 31;152 int scan_code = 31;
153 MirKeyModifier old_modifiers = mir_key_modifier_shift;153 MirInputEventModifiers modifiers = mir_input_event_modifier_shift;
154154
155 auto old_ev = a_key_ev();155 auto old_ev = a_key_ev();
156 old_ev.key.key_code = key_code;156 old_ev.key.key_code = key_code;
157 old_ev.key.scan_code = scan_code;157 old_ev.key.scan_code = scan_code;
158 old_ev.key.modifiers = old_modifiers;158 old_ev.key.modifiers = modifiers;
159159
160 auto new_kev = mir_input_event_get_keyboard_event(mir_event_get_input_event(&old_ev));160 auto new_kev = mir_input_event_get_keyboard_event(mir_event_get_input_event(&old_ev));
161 EXPECT_EQ(key_code, mir_keyboard_event_key_code(new_kev));161 EXPECT_EQ(key_code, mir_keyboard_event_key_code(new_kev));
162 EXPECT_EQ(scan_code, mir_keyboard_event_scan_code(new_kev));162 EXPECT_EQ(scan_code, mir_keyboard_event_scan_code(new_kev));
163 EXPECT_EQ(mir_input_event_modifier_shift, mir_keyboard_event_modifiers(new_kev));163 EXPECT_EQ(modifiers, mir_keyboard_event_modifiers(new_kev));
164}164}
165165
166TEST(TouchEventProperties, touch_count_taken_from_pointer_count)166TEST(TouchEventProperties, touch_count_taken_from_pointer_count)
@@ -296,12 +296,13 @@
296296
297TEST(PointerInputEventProperties, modifiers_taken_from_old_style_ev)297TEST(PointerInputEventProperties, modifiers_taken_from_old_style_ev)
298{298{
299 MirInputEventModifiers modifiers = mir_input_event_modifier_shift;
299 auto old_ev = a_motion_ev(AINPUT_SOURCE_MOUSE);300 auto old_ev = a_motion_ev(AINPUT_SOURCE_MOUSE);
300 old_ev.motion.modifiers = mir_key_modifier_shift;301 old_ev.motion.modifiers = modifiers;
301 302
302 auto pointer_event = 303 auto pointer_event =
303 mir_input_event_get_pointer_event(mir_event_get_input_event(&old_ev));304 mir_input_event_get_pointer_event(mir_event_get_input_event(&old_ev));
304 EXPECT_EQ(mir_input_event_modifier_shift, mir_pointer_event_modifiers(pointer_event));305 EXPECT_EQ(modifiers, mir_pointer_event_modifiers(pointer_event));
305}306}
306307
307namespace308namespace

Subscribers

People subscribed via source and target branches