| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/aura/event_filter.h" | 5 #include "ui/aura/event_filter.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "ui/aura/focus_manager.h" | 9 #include "ui/aura/focus_manager.h" |
| 10 #include "ui/aura/root_window.h" | 10 #include "ui/aura/root_window.h" |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 // event filters and w11's delegate will be notified. | 193 // event filters and w11's delegate will be notified. |
| 194 test::EventGenerator generator(root_window(), w11.get()); | 194 test::EventGenerator generator(root_window(), w11.get()); |
| 195 | 195 |
| 196 d11.set_key_event_handling_result(ui::ER_UNHANDLED); | 196 d11.set_key_event_handling_result(ui::ER_UNHANDLED); |
| 197 d11.set_mouse_event_handling_result(ui::ER_UNHANDLED); | 197 d11.set_mouse_event_handling_result(ui::ER_UNHANDLED); |
| 198 d11.set_consumes_touch_events(false); | 198 d11.set_consumes_touch_events(false); |
| 199 | 199 |
| 200 generator.PressKey(ui::VKEY_A, 0); | 200 generator.PressKey(ui::VKEY_A, 0); |
| 201 generator.PressLeftButton(); | 201 generator.PressLeftButton(); |
| 202 | 202 |
| 203 EXPECT_EQ(1, w1_filter->key_event_count()); | 203 #if defined(OS_WIN) |
| 204 // Windows sends two WM_KEYDOWN/WM_CHAR events for one key press. |
| 205 const int kExpectedKeyCount = 2; |
| 206 #else |
| 207 const int kExpectedKeyCount = 1; |
| 208 #endif |
| 209 |
| 210 EXPECT_EQ(kExpectedKeyCount, w1_filter->key_event_count()); |
| 204 EXPECT_EQ(1, w1_filter->mouse_event_count()); | 211 EXPECT_EQ(1, w1_filter->mouse_event_count()); |
| 205 EXPECT_EQ(1, root_window_filter.mouse_event_count()); | 212 EXPECT_EQ(1, root_window_filter.mouse_event_count()); |
| 206 EXPECT_EQ(1, d11.key_event_count()); | 213 EXPECT_EQ(kExpectedKeyCount, d11.key_event_count()); |
| 207 EXPECT_EQ(1, d11.mouse_event_count()); | 214 EXPECT_EQ(1, d11.mouse_event_count()); |
| 208 | 215 |
| 209 root_window_filter.ResetCounts(); | 216 root_window_filter.ResetCounts(); |
| 210 w1_filter->ResetCounts(); | 217 w1_filter->ResetCounts(); |
| 211 d11.ResetCounts(); | 218 d11.ResetCounts(); |
| 212 generator.set_flags(0); | 219 generator.set_flags(0); |
| 213 | 220 |
| 214 // Let |w1_filter| handle (but not consume) an event. The root-window's | 221 // Let |w1_filter| handle (but not consume) an event. The root-window's |
| 215 // post-target filter should still receive the event. | 222 // post-target filter should still receive the event. |
| 216 w1_filter->set_mouse_event_handling_result(ui::ER_HANDLED); | 223 w1_filter->set_mouse_event_handling_result(ui::ER_HANDLED); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 239 generator.set_flags(0); | 246 generator.set_flags(0); |
| 240 | 247 |
| 241 w1_filter->set_mouse_event_handling_result(ui::ER_UNHANDLED); | 248 w1_filter->set_mouse_event_handling_result(ui::ER_UNHANDLED); |
| 242 d11.set_key_event_handling_result(ui::ER_HANDLED); | 249 d11.set_key_event_handling_result(ui::ER_HANDLED); |
| 243 d11.set_mouse_event_handling_result(ui::ER_HANDLED); | 250 d11.set_mouse_event_handling_result(ui::ER_HANDLED); |
| 244 d11.set_consumes_touch_events(true); | 251 d11.set_consumes_touch_events(true); |
| 245 | 252 |
| 246 generator.PressKey(ui::VKEY_A, 0); | 253 generator.PressKey(ui::VKEY_A, 0); |
| 247 generator.PressLeftButton(); | 254 generator.PressLeftButton(); |
| 248 | 255 |
| 249 EXPECT_EQ(1, d11.key_event_count()); | 256 EXPECT_EQ(kExpectedKeyCount, d11.key_event_count()); |
| 250 EXPECT_EQ(1, d11.mouse_event_count()); | 257 EXPECT_EQ(1, d11.mouse_event_count()); |
| 251 // The delegate processed the event. But it should still bubble up to the | 258 // The delegate processed the event. But it should still bubble up to the |
| 252 // post-target filters. | 259 // post-target filters. |
| 253 EXPECT_EQ(1, w1_filter->key_event_count()); | 260 EXPECT_EQ(kExpectedKeyCount, w1_filter->key_event_count()); |
| 254 EXPECT_EQ(1, root_window_filter.key_event_count()); | 261 EXPECT_EQ(kExpectedKeyCount, root_window_filter.key_event_count()); |
| 255 EXPECT_EQ(1, w1_filter->mouse_event_count()); | 262 EXPECT_EQ(1, w1_filter->mouse_event_count()); |
| 256 EXPECT_EQ(1, root_window_filter.mouse_event_count()); | 263 EXPECT_EQ(1, root_window_filter.mouse_event_count()); |
| 257 | 264 |
| 258 // Now we'll have the delegate consume the events. | 265 // Now we'll have the delegate consume the events. |
| 259 root_window_filter.ResetCounts(); | 266 root_window_filter.ResetCounts(); |
| 260 w1_filter->ResetCounts(); | 267 w1_filter->ResetCounts(); |
| 261 d11.ResetCounts(); | 268 d11.ResetCounts(); |
| 262 generator.set_flags(0); | 269 generator.set_flags(0); |
| 263 | 270 |
| 264 d11.set_key_event_handling_result(ui::ER_CONSUMED); | 271 d11.set_key_event_handling_result(ui::ER_CONSUMED); |
| 265 d11.set_mouse_event_handling_result(ui::ER_CONSUMED); | 272 d11.set_mouse_event_handling_result(ui::ER_CONSUMED); |
| 266 d11.set_consumes_touch_events(true); | 273 d11.set_consumes_touch_events(true); |
| 267 | 274 |
| 268 generator.PressKey(ui::VKEY_A, 0); | 275 generator.PressKey(ui::VKEY_A, 0); |
| 269 generator.PressLeftButton(); | 276 generator.PressLeftButton(); |
| 270 | 277 |
| 271 EXPECT_EQ(1, d11.key_event_count()); | 278 EXPECT_EQ(kExpectedKeyCount, d11.key_event_count()); |
| 272 EXPECT_EQ(1, d11.mouse_event_count()); | 279 EXPECT_EQ(1, d11.mouse_event_count()); |
| 273 // The delegate consumed the event. So it should no longer reach the | 280 // The delegate consumed the event. So it should no longer reach the |
| 274 // post-target filters. | 281 // post-target filters. |
| 275 EXPECT_EQ(0, w1_filter->key_event_count()); | 282 EXPECT_EQ(0, w1_filter->key_event_count()); |
| 276 EXPECT_EQ(0, root_window_filter.key_event_count()); | 283 EXPECT_EQ(0, root_window_filter.key_event_count()); |
| 277 EXPECT_EQ(0, w1_filter->mouse_event_count()); | 284 EXPECT_EQ(0, w1_filter->mouse_event_count()); |
| 278 EXPECT_EQ(0, root_window_filter.mouse_event_count()); | 285 EXPECT_EQ(0, root_window_filter.mouse_event_count()); |
| 279 | 286 |
| 280 // Now we'll have the pre-filter methods consume the events. | 287 // Now we'll have the pre-filter methods consume the events. |
| 281 w1->RemovePostTargetHandler(w1_filter); | 288 w1->RemovePostTargetHandler(w1_filter); |
| 282 w1->SetEventFilter(w1_filter); | 289 w1->SetEventFilter(w1_filter); |
| 283 w1_filter->ResetCounts(); | 290 w1_filter->ResetCounts(); |
| 284 d11.ResetCounts(); | 291 d11.ResetCounts(); |
| 285 generator.set_flags(0); | 292 generator.set_flags(0); |
| 286 | 293 |
| 287 d11.set_key_event_handling_result(ui::ER_UNHANDLED); | 294 d11.set_key_event_handling_result(ui::ER_UNHANDLED); |
| 288 d11.set_mouse_event_handling_result(ui::ER_UNHANDLED); | 295 d11.set_mouse_event_handling_result(ui::ER_UNHANDLED); |
| 289 d11.set_consumes_touch_events(false); | 296 d11.set_consumes_touch_events(false); |
| 290 | 297 |
| 291 w1_filter->set_key_event_handling_result(ui::ER_CONSUMED); | 298 w1_filter->set_key_event_handling_result(ui::ER_CONSUMED); |
| 292 w1_filter->set_mouse_event_handling_result(ui::ER_CONSUMED); | 299 w1_filter->set_mouse_event_handling_result(ui::ER_CONSUMED); |
| 293 w1_filter->set_consumes_touch_events(true); | 300 w1_filter->set_consumes_touch_events(true); |
| 294 | 301 |
| 295 generator.PressKey(ui::VKEY_A, 0); | 302 generator.PressKey(ui::VKEY_A, 0); |
| 296 generator.PressLeftButton(); | 303 generator.PressLeftButton(); |
| 297 | 304 |
| 298 EXPECT_EQ(1, w1_filter->key_event_count()); | 305 EXPECT_EQ(kExpectedKeyCount, w1_filter->key_event_count()); |
| 299 EXPECT_EQ(0, d11.key_event_count()); | 306 EXPECT_EQ(0, d11.key_event_count()); |
| 300 EXPECT_EQ(1, w1_filter->mouse_event_count()); | 307 EXPECT_EQ(1, w1_filter->mouse_event_count()); |
| 301 EXPECT_EQ(0, d11.mouse_event_count()); | 308 EXPECT_EQ(0, d11.mouse_event_count()); |
| 302 } | 309 } |
| 303 | 310 |
| 304 } // namespace aura | 311 } // namespace aura |
| OLD | NEW |