| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/events/event_rewriter.h" | 5 #include "chrome/browser/chromeos/events/event_rewriter.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
| 10 #include "ash/sticky_keys/sticky_keys_controller.h" | 10 #include "ash/sticky_keys/sticky_keys_controller.h" |
| (...skipping 3094 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3105 ui::DomKey::BROWSER_BACK, 0), | 3105 ui::DomKey::BROWSER_BACK, 0), |
| 3106 GetKeyEventAsString(*static_cast<ui::KeyEvent*>(events[0]))); | 3106 GetKeyEventAsString(*static_cast<ui::KeyEvent*>(events[0]))); |
| 3107 } | 3107 } |
| 3108 | 3108 |
| 3109 TEST_F(EventRewriterTest, TestRewrittenModifierClick) { | 3109 TEST_F(EventRewriterTest, TestRewrittenModifierClick) { |
| 3110 #if defined(USE_X11) | 3110 #if defined(USE_X11) |
| 3111 std::vector<int> device_list; | 3111 std::vector<int> device_list; |
| 3112 device_list.push_back(10); | 3112 device_list.push_back(10); |
| 3113 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); | 3113 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); |
| 3114 | 3114 |
| 3115 // Remap Control to Search. | 3115 // Remap Control to Alt. |
| 3116 TestingPrefServiceSyncable prefs; | 3116 TestingPrefServiceSyncable prefs; |
| 3117 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); | 3117 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 3118 IntegerPrefMember control; | 3118 IntegerPrefMember control; |
| 3119 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); | 3119 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); |
| 3120 control.SetValue(chromeos::input_method::kSearchKey); | 3120 control.SetValue(chromeos::input_method::kAltKey); |
| 3121 | 3121 |
| 3122 EventRewriter rewriter(NULL); | 3122 EventRewriter rewriter(NULL); |
| 3123 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); | 3123 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); |
| 3124 rewriter.set_pref_service_for_testing(&prefs); | 3124 rewriter.set_pref_service_for_testing(&prefs); |
| 3125 | 3125 |
| 3126 // Check that Control + Left Button is converted (via Search + Left Button) | 3126 // Check that Control + Left Button is converted (via Alt + Left Button) |
| 3127 // to Right Button. | 3127 // to Right Button. |
| 3128 ui::ScopedXI2Event xev; | 3128 ui::ScopedXI2Event xev; |
| 3129 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(), | 3129 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(), |
| 3130 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN); | 3130 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN); |
| 3131 ui::MouseEvent press(xev); | 3131 ui::MouseEvent press(xev); |
| 3132 // Sanity check. | 3132 // Sanity check. |
| 3133 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); | 3133 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); |
| 3134 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN, press.flags()); | 3134 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN, press.flags()); |
| 3135 scoped_ptr<ui::Event> new_event; | 3135 scoped_ptr<ui::Event> new_event; |
| 3136 const ui::MouseEvent* result = | 3136 const ui::MouseEvent* result = |
| 3137 RewriteMouseButtonEvent(&rewriter, press, &new_event); | 3137 RewriteMouseButtonEvent(&rewriter, press, &new_event); |
| 3138 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); | 3138 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); |
| 3139 EXPECT_FALSE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); | 3139 EXPECT_FALSE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); |
| 3140 EXPECT_FALSE(ui::EF_CONTROL_DOWN & result->flags()); | 3140 EXPECT_FALSE(ui::EF_CONTROL_DOWN & result->flags()); |
| 3141 EXPECT_FALSE(ui::EF_COMMAND_DOWN & result->flags()); | 3141 EXPECT_FALSE(ui::EF_ALT_DOWN & result->flags()); |
| 3142 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); | 3142 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); |
| 3143 #endif | 3143 #endif |
| 3144 } | 3144 } |
| 3145 | 3145 |
| 3146 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { | 3146 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { |
| 3147 // TODO(kpschoedel): pending changes for crbug.com/360377 | 3147 // TODO(kpschoedel): pending changes for crbug.com/360377 |
| 3148 // to |chromeos::EventRewriter::RewriteLocatedEvent() | 3148 // to |chromeos::EventRewriter::RewriteLocatedEvent() |
| 3149 #if defined(USE_X11) | 3149 #if defined(USE_X11) |
| 3150 std::vector<int> device_list; | 3150 std::vector<int> device_list; |
| 3151 device_list.push_back(10); | 3151 device_list.push_back(10); |
| 3152 device_list.push_back(11); | 3152 device_list.push_back(11); |
| 3153 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); | 3153 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); |
| 3154 #endif | 3154 #endif |
| 3155 TestingPrefServiceSyncable prefs; | 3155 TestingPrefServiceSyncable prefs; |
| 3156 EventRewriter rewriter(NULL); | 3156 EventRewriter rewriter(NULL); |
| 3157 rewriter.set_pref_service_for_testing(&prefs); | 3157 rewriter.set_pref_service_for_testing(&prefs); |
| 3158 const int kLeftAndSearchFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_COMMAND_DOWN; | 3158 const int kLeftAndAltFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN; |
| 3159 | 3159 |
| 3160 // Test Search + Left click. | 3160 // Test Alt + Left click. |
| 3161 { | 3161 { |
| 3162 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), | 3162 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), |
| 3163 ui::EventTimeForNow(), kLeftAndSearchFlag, | 3163 ui::EventTimeForNow(), kLeftAndAltFlag, |
| 3164 ui::EF_LEFT_MOUSE_BUTTON); | 3164 ui::EF_LEFT_MOUSE_BUTTON); |
| 3165 ui::EventTestApi test_press(&press); | 3165 ui::EventTestApi test_press(&press); |
| 3166 test_press.set_source_device_id(10); | 3166 test_press.set_source_device_id(10); |
| 3167 // Sanity check. | 3167 // Sanity check. |
| 3168 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); | 3168 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); |
| 3169 EXPECT_EQ(kLeftAndSearchFlag, press.flags()); | 3169 EXPECT_EQ(kLeftAndAltFlag, press.flags()); |
| 3170 scoped_ptr<ui::Event> new_event; | 3170 scoped_ptr<ui::Event> new_event; |
| 3171 const ui::MouseEvent* result = | 3171 const ui::MouseEvent* result = |
| 3172 RewriteMouseButtonEvent(&rewriter, press, &new_event); | 3172 RewriteMouseButtonEvent(&rewriter, press, &new_event); |
| 3173 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); | 3173 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); |
| 3174 EXPECT_FALSE(kLeftAndSearchFlag & result->flags()); | 3174 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); |
| 3175 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); | 3175 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3176 } | 3176 } |
| 3177 { | 3177 { |
| 3178 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), | 3178 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), |
| 3179 ui::EventTimeForNow(), kLeftAndSearchFlag, | 3179 ui::EventTimeForNow(), kLeftAndAltFlag, |
| 3180 ui::EF_LEFT_MOUSE_BUTTON); | 3180 ui::EF_LEFT_MOUSE_BUTTON); |
| 3181 ui::EventTestApi test_release(&release); | 3181 ui::EventTestApi test_release(&release); |
| 3182 test_release.set_source_device_id(10); | 3182 test_release.set_source_device_id(10); |
| 3183 scoped_ptr<ui::Event> new_event; | 3183 scoped_ptr<ui::Event> new_event; |
| 3184 const ui::MouseEvent* result = | 3184 const ui::MouseEvent* result = |
| 3185 RewriteMouseButtonEvent(&rewriter, release, &new_event); | 3185 RewriteMouseButtonEvent(&rewriter, release, &new_event); |
| 3186 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); | 3186 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); |
| 3187 EXPECT_FALSE(kLeftAndSearchFlag & result->flags()); | 3187 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); |
| 3188 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); | 3188 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3189 } | 3189 } |
| 3190 #if defined(USE_X11) | 3190 #if defined(USE_X11) |
| 3191 // Test Search + Left click, using XI2 native events. | 3191 // Test Alt + Left click, using XI2 native events. |
| 3192 { | 3192 { |
| 3193 ui::ScopedXI2Event xev; | 3193 ui::ScopedXI2Event xev; |
| 3194 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(), | 3194 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(), |
| 3195 kLeftAndSearchFlag); | 3195 kLeftAndAltFlag); |
| 3196 ui::MouseEvent press(xev); | 3196 ui::MouseEvent press(xev); |
| 3197 // Sanity check. | 3197 // Sanity check. |
| 3198 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); | 3198 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); |
| 3199 EXPECT_EQ(kLeftAndSearchFlag, press.flags()); | 3199 EXPECT_EQ(kLeftAndAltFlag, press.flags()); |
| 3200 scoped_ptr<ui::Event> new_event; | 3200 scoped_ptr<ui::Event> new_event; |
| 3201 const ui::MouseEvent* result = | 3201 const ui::MouseEvent* result = |
| 3202 RewriteMouseButtonEvent(&rewriter, press, &new_event); | 3202 RewriteMouseButtonEvent(&rewriter, press, &new_event); |
| 3203 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); | 3203 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); |
| 3204 EXPECT_FALSE(kLeftAndSearchFlag & result->flags()); | 3204 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); |
| 3205 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); | 3205 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3206 } | 3206 } |
| 3207 { | 3207 { |
| 3208 ui::ScopedXI2Event xev; | 3208 ui::ScopedXI2Event xev; |
| 3209 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(), | 3209 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(), |
| 3210 kLeftAndSearchFlag); | 3210 kLeftAndAltFlag); |
| 3211 ui::MouseEvent release(xev); | 3211 ui::MouseEvent release(xev); |
| 3212 scoped_ptr<ui::Event> new_event; | 3212 scoped_ptr<ui::Event> new_event; |
| 3213 const ui::MouseEvent* result = | 3213 const ui::MouseEvent* result = |
| 3214 RewriteMouseButtonEvent(&rewriter, release, &new_event); | 3214 RewriteMouseButtonEvent(&rewriter, release, &new_event); |
| 3215 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); | 3215 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); |
| 3216 EXPECT_FALSE(kLeftAndSearchFlag & result->flags()); | 3216 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); |
| 3217 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); | 3217 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3218 } | 3218 } |
| 3219 #endif | 3219 #endif |
| 3220 | 3220 |
| 3221 // No SEARCH in first click. | 3221 // No ALT in frst click. |
| 3222 { | 3222 { |
| 3223 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), | 3223 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), |
| 3224 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 3224 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, |
| 3225 ui::EF_LEFT_MOUSE_BUTTON); | 3225 ui::EF_LEFT_MOUSE_BUTTON); |
| 3226 ui::EventTestApi test_press(&press); | 3226 ui::EventTestApi test_press(&press); |
| 3227 test_press.set_source_device_id(10); | 3227 test_press.set_source_device_id(10); |
| 3228 scoped_ptr<ui::Event> new_event; | 3228 scoped_ptr<ui::Event> new_event; |
| 3229 const ui::MouseEvent* result = | 3229 const ui::MouseEvent* result = |
| 3230 RewriteMouseButtonEvent(&rewriter, press, &new_event); | 3230 RewriteMouseButtonEvent(&rewriter, press, &new_event); |
| 3231 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); | 3231 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); |
| 3232 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); | 3232 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3233 } | 3233 } |
| 3234 { | 3234 { |
| 3235 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), | 3235 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), |
| 3236 ui::EventTimeForNow(), kLeftAndSearchFlag, | 3236 ui::EventTimeForNow(), kLeftAndAltFlag, |
| 3237 ui::EF_LEFT_MOUSE_BUTTON); | 3237 ui::EF_LEFT_MOUSE_BUTTON); |
| 3238 ui::EventTestApi test_release(&release); | 3238 ui::EventTestApi test_release(&release); |
| 3239 test_release.set_source_device_id(10); | 3239 test_release.set_source_device_id(10); |
| 3240 scoped_ptr<ui::Event> new_event; | 3240 scoped_ptr<ui::Event> new_event; |
| 3241 const ui::MouseEvent* result = | 3241 const ui::MouseEvent* result = |
| 3242 RewriteMouseButtonEvent(&rewriter, release, &new_event); | 3242 RewriteMouseButtonEvent(&rewriter, release, &new_event); |
| 3243 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_COMMAND_DOWN, result->flags()); | 3243 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); |
| 3244 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); | 3244 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3245 } | 3245 } |
| 3246 #if defined(USE_X11) | 3246 #if defined(USE_X11) |
| 3247 // No SEARCH in first click, using XI2 native events. | 3247 // No ALT in frst click, using XI2 native events. |
| 3248 { | 3248 { |
| 3249 ui::ScopedXI2Event xev; | 3249 ui::ScopedXI2Event xev; |
| 3250 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(), | 3250 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(), |
| 3251 ui::EF_LEFT_MOUSE_BUTTON); | 3251 ui::EF_LEFT_MOUSE_BUTTON); |
| 3252 ui::MouseEvent press(xev); | 3252 ui::MouseEvent press(xev); |
| 3253 scoped_ptr<ui::Event> new_event; | 3253 scoped_ptr<ui::Event> new_event; |
| 3254 const ui::MouseEvent* result = | 3254 const ui::MouseEvent* result = |
| 3255 RewriteMouseButtonEvent(&rewriter, press, &new_event); | 3255 RewriteMouseButtonEvent(&rewriter, press, &new_event); |
| 3256 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); | 3256 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); |
| 3257 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); | 3257 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3258 } | 3258 } |
| 3259 { | 3259 { |
| 3260 ui::ScopedXI2Event xev; | 3260 ui::ScopedXI2Event xev; |
| 3261 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(), | 3261 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(), |
| 3262 kLeftAndSearchFlag); | 3262 kLeftAndAltFlag); |
| 3263 ui::MouseEvent release(xev); | 3263 ui::MouseEvent release(xev); |
| 3264 scoped_ptr<ui::Event> new_event; | 3264 scoped_ptr<ui::Event> new_event; |
| 3265 const ui::MouseEvent* result = | 3265 const ui::MouseEvent* result = |
| 3266 RewriteMouseButtonEvent(&rewriter, release, &new_event); | 3266 RewriteMouseButtonEvent(&rewriter, release, &new_event); |
| 3267 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_COMMAND_DOWN, result->flags()); | 3267 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); |
| 3268 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); | 3268 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3269 } | 3269 } |
| 3270 #endif | 3270 #endif |
| 3271 | 3271 |
| 3272 // SEARCH on different device. | 3272 // ALT on different device. |
| 3273 { | 3273 { |
| 3274 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), | 3274 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), |
| 3275 ui::EventTimeForNow(), kLeftAndSearchFlag, | 3275 ui::EventTimeForNow(), kLeftAndAltFlag, |
| 3276 ui::EF_LEFT_MOUSE_BUTTON); | 3276 ui::EF_LEFT_MOUSE_BUTTON); |
| 3277 ui::EventTestApi test_press(&press); | 3277 ui::EventTestApi test_press(&press); |
| 3278 test_press.set_source_device_id(11); | 3278 test_press.set_source_device_id(11); |
| 3279 scoped_ptr<ui::Event> new_event; | 3279 scoped_ptr<ui::Event> new_event; |
| 3280 const ui::MouseEvent* result = | 3280 const ui::MouseEvent* result = |
| 3281 RewriteMouseButtonEvent(&rewriter, press, &new_event); | 3281 RewriteMouseButtonEvent(&rewriter, press, &new_event); |
| 3282 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); | 3282 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); |
| 3283 EXPECT_FALSE(kLeftAndSearchFlag & result->flags()); | 3283 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); |
| 3284 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); | 3284 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3285 } | 3285 } |
| 3286 { | 3286 { |
| 3287 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), | 3287 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), |
| 3288 ui::EventTimeForNow(), kLeftAndSearchFlag, | 3288 ui::EventTimeForNow(), kLeftAndAltFlag, |
| 3289 ui::EF_LEFT_MOUSE_BUTTON); | 3289 ui::EF_LEFT_MOUSE_BUTTON); |
| 3290 ui::EventTestApi test_release(&release); | 3290 ui::EventTestApi test_release(&release); |
| 3291 test_release.set_source_device_id(10); | 3291 test_release.set_source_device_id(10); |
| 3292 scoped_ptr<ui::Event> new_event; | 3292 scoped_ptr<ui::Event> new_event; |
| 3293 const ui::MouseEvent* result = | 3293 const ui::MouseEvent* result = |
| 3294 RewriteMouseButtonEvent(&rewriter, release, &new_event); | 3294 RewriteMouseButtonEvent(&rewriter, release, &new_event); |
| 3295 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_COMMAND_DOWN, result->flags()); | 3295 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); |
| 3296 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); | 3296 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3297 } | 3297 } |
| 3298 { | 3298 { |
| 3299 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), | 3299 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), |
| 3300 ui::EventTimeForNow(), kLeftAndSearchFlag, | 3300 ui::EventTimeForNow(), kLeftAndAltFlag, |
| 3301 ui::EF_LEFT_MOUSE_BUTTON); | 3301 ui::EF_LEFT_MOUSE_BUTTON); |
| 3302 ui::EventTestApi test_release(&release); | 3302 ui::EventTestApi test_release(&release); |
| 3303 test_release.set_source_device_id(11); | 3303 test_release.set_source_device_id(11); |
| 3304 scoped_ptr<ui::Event> new_event; | 3304 scoped_ptr<ui::Event> new_event; |
| 3305 const ui::MouseEvent* result = | 3305 const ui::MouseEvent* result = |
| 3306 RewriteMouseButtonEvent(&rewriter, release, &new_event); | 3306 RewriteMouseButtonEvent(&rewriter, release, &new_event); |
| 3307 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); | 3307 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); |
| 3308 EXPECT_FALSE(kLeftAndSearchFlag & result->flags()); | 3308 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); |
| 3309 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); | 3309 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3310 } | 3310 } |
| 3311 #if defined(USE_X11) | 3311 #if defined(USE_X11) |
| 3312 // SEARCH on different device, using XI2 native events. | 3312 // ALT on different device, using XI2 native events. |
| 3313 { | 3313 { |
| 3314 ui::ScopedXI2Event xev; | 3314 ui::ScopedXI2Event xev; |
| 3315 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_PRESSED, gfx::Point(), | 3315 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_PRESSED, gfx::Point(), |
| 3316 kLeftAndSearchFlag); | 3316 kLeftAndAltFlag); |
| 3317 ui::MouseEvent press(xev); | 3317 ui::MouseEvent press(xev); |
| 3318 scoped_ptr<ui::Event> new_event; | 3318 scoped_ptr<ui::Event> new_event; |
| 3319 const ui::MouseEvent* result = | 3319 const ui::MouseEvent* result = |
| 3320 RewriteMouseButtonEvent(&rewriter, press, &new_event); | 3320 RewriteMouseButtonEvent(&rewriter, press, &new_event); |
| 3321 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); | 3321 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); |
| 3322 EXPECT_FALSE(kLeftAndSearchFlag & result->flags()); | 3322 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); |
| 3323 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); | 3323 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3324 } | 3324 } |
| 3325 { | 3325 { |
| 3326 ui::ScopedXI2Event xev; | 3326 ui::ScopedXI2Event xev; |
| 3327 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(), | 3327 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(), |
| 3328 kLeftAndSearchFlag); | 3328 kLeftAndAltFlag); |
| 3329 ui::MouseEvent release(xev); | 3329 ui::MouseEvent release(xev); |
| 3330 scoped_ptr<ui::Event> new_event; | 3330 scoped_ptr<ui::Event> new_event; |
| 3331 const ui::MouseEvent* result = | 3331 const ui::MouseEvent* result = |
| 3332 RewriteMouseButtonEvent(&rewriter, release, &new_event); | 3332 RewriteMouseButtonEvent(&rewriter, release, &new_event); |
| 3333 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_COMMAND_DOWN, result->flags()); | 3333 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); |
| 3334 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); | 3334 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3335 } | 3335 } |
| 3336 { | 3336 { |
| 3337 ui::ScopedXI2Event xev; | 3337 ui::ScopedXI2Event xev; |
| 3338 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_RELEASED, gfx::Point(), | 3338 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_RELEASED, gfx::Point(), |
| 3339 kLeftAndSearchFlag); | 3339 kLeftAndAltFlag); |
| 3340 ui::MouseEvent release(xev); | 3340 ui::MouseEvent release(xev); |
| 3341 scoped_ptr<ui::Event> new_event; | 3341 scoped_ptr<ui::Event> new_event; |
| 3342 const ui::MouseEvent* result = | 3342 const ui::MouseEvent* result = |
| 3343 RewriteMouseButtonEvent(&rewriter, release, &new_event); | 3343 RewriteMouseButtonEvent(&rewriter, release, &new_event); |
| 3344 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); | 3344 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); |
| 3345 EXPECT_FALSE(kLeftAndSearchFlag & result->flags()); | 3345 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); |
| 3346 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); | 3346 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); |
| 3347 } | 3347 } |
| 3348 #endif | 3348 #endif |
| 3349 } | 3349 } |
| 3350 | 3350 |
| 3351 TEST_F(EventRewriterAshTest, StickyKeyEventDispatchImpl) { | 3351 TEST_F(EventRewriterAshTest, StickyKeyEventDispatchImpl) { |
| 3352 // Test the actual key event dispatch implementation. | 3352 // Test the actual key event dispatch implementation. |
| 3353 ScopedVector<ui::Event> events; | 3353 ScopedVector<ui::Event> events; |
| 3354 | 3354 |
| 3355 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, | 3355 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3671 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); | 3671 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); |
| 3672 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); | 3672 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); |
| 3673 | 3673 |
| 3674 // Turn off AltGr and Mod3. | 3674 // Turn off AltGr and Mod3. |
| 3675 sticky_keys_controller_->SetModifiersEnabled(false, false); | 3675 sticky_keys_controller_->SetModifiersEnabled(false, false); |
| 3676 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); | 3676 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); |
| 3677 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); | 3677 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); |
| 3678 } | 3678 } |
| 3679 | 3679 |
| 3680 } // namespace chromeos | 3680 } // namespace chromeos |
| OLD | NEW |