Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: ui/views/test/event_generator_delegate_mac.mm

Issue 2505943002: MacViews: Fix accelerator handling while Omnibox is in focus. (Closed)
Patch Set: Remove performKeyEquivalent:, update keyDown:, add tests. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #import <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 #include <stddef.h> 6 #include <stddef.h>
7 7
8 #import "base/mac/scoped_nsobject.h" 8 #import "base/mac/scoped_nsobject.h"
9 #import "base/mac/scoped_objc_class_swizzler.h" 9 #import "base/mac/scoped_objc_class_swizzler.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 EventGeneratorDelegateMac::GetChildIterator() const { 346 EventGeneratorDelegateMac::GetChildIterator() const {
347 // Return nullptr to dispatch all events to the result of GetRootTarget(). 347 // Return nullptr to dispatch all events to the result of GetRootTarget().
348 return nullptr; 348 return nullptr;
349 } 349 }
350 350
351 void EventGeneratorDelegateMac::OnMouseEvent(ui::MouseEvent* event) { 351 void EventGeneratorDelegateMac::OnMouseEvent(ui::MouseEvent* event) {
352 NSEvent* ns_event = CreateMouseEventInWindow(window_, 352 NSEvent* ns_event = CreateMouseEventInWindow(window_,
353 event->type(), 353 event->type(),
354 event->location(), 354 event->location(),
355 event->changed_button_flags()); 355 event->changed_button_flags());
356 if (owner_->targeting_application()) 356 using Target = ui::test::EventGenerator::Target;
357 switch (owner_->target()) {
358 case Target::APPLICATION:
tapted 2016/11/18 07:28:04 this should be indented - git cl format?
themblsha 2016/11/18 13:31:50 Ah, I'm probably using an outdated clang-format in
357 [NSApp sendEvent:ns_event]; 359 [NSApp sendEvent:ns_event];
358 else 360 break;
361 case Target::WINDOW:
362 [window_ sendEvent:ns_event];
363 break;
364 case Target::WIDGET:
359 EmulateSendEvent(window_, ns_event); 365 EmulateSendEvent(window_, ns_event);
366 break;
367 }
360 } 368 }
361 369
362 void EventGeneratorDelegateMac::OnKeyEvent(ui::KeyEvent* event) { 370 void EventGeneratorDelegateMac::OnKeyEvent(ui::KeyEvent* event) {
363 NSUInteger modifiers = EventFlagsToModifiers(event->flags()); 371 NSUInteger modifiers = EventFlagsToModifiers(event->flags());
364 NSEvent* ns_event = cocoa_test_event_utils::SynthesizeKeyEvent( 372 NSEvent* ns_event = cocoa_test_event_utils::SynthesizeKeyEvent(
365 window_, event->type() == ui::ET_KEY_PRESSED, event->key_code(), 373 window_, event->type() == ui::ET_KEY_PRESSED, event->key_code(),
366 modifiers, event->is_char() ? event->GetDomKey() : ui::DomKey::NONE); 374 modifiers, event->is_char() ? event->GetDomKey() : ui::DomKey::NONE);
367 if (owner_->targeting_application()) { 375
376 using Target = ui::test::EventGenerator::Target;
377 switch (owner_->target()) {
378 case Target::APPLICATION:
368 [NSApp sendEvent:ns_event]; 379 [NSApp sendEvent:ns_event];
369 return; 380 break;
381 case Target::WINDOW:
382 [window_ sendEvent:ns_event];
383 break;
384 case Target::WIDGET:
385 if ([fake_menu_ performKeyEquivalent:ns_event])
386 return;
387
388 EmulateSendEvent(window_, ns_event);
389 break;
370 } 390 }
371
372 if ([fake_menu_ performKeyEquivalent:ns_event])
373 return;
374
375 EmulateSendEvent(window_, ns_event);
376 } 391 }
377 392
378 void EventGeneratorDelegateMac::OnTouchEvent(ui::TouchEvent* event) { 393 void EventGeneratorDelegateMac::OnTouchEvent(ui::TouchEvent* event) {
379 NOTREACHED() << "Touchscreen events not supported on Chrome Mac."; 394 NOTREACHED() << "Touchscreen events not supported on Chrome Mac.";
380 } 395 }
381 396
382 void EventGeneratorDelegateMac::SetContext(ui::test::EventGenerator* owner, 397 void EventGeneratorDelegateMac::SetContext(ui::test::EventGenerator* owner,
383 gfx::NativeWindow root_window, 398 gfx::NativeWindow root_window,
384 gfx::NativeWindow window) { 399 gfx::NativeWindow window) {
385 // Mac doesn't use a |root_window|. Assume that if a single-argument 400 // Mac doesn't use a |root_window|. Assume that if a single-argument
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 - (NSEvent*)currentEvent { 506 - (NSEvent*)currentEvent {
492 if (g_current_event) 507 if (g_current_event)
493 return g_current_event; 508 return g_current_event;
494 509
495 // Find the original implementation and invoke it. 510 // Find the original implementation and invoke it.
496 IMP original = EventGeneratorDelegateMac::GetInstance()->CurrentEventMethod(); 511 IMP original = EventGeneratorDelegateMac::GetInstance()->CurrentEventMethod();
497 return original(self, _cmd); 512 return original(self, _cmd);
498 } 513 }
499 514
500 @end 515 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698