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

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: Fix tapted's review issues. Created 4 years 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 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 return nullptr; 368 return nullptr;
369 } 369 }
370 370
371 void EventGeneratorDelegateMac::OnMouseEvent(ui::MouseEvent* event) { 371 void EventGeneratorDelegateMac::OnMouseEvent(ui::MouseEvent* event) {
372 NSEvent* ns_event = 372 NSEvent* ns_event =
373 event->type() == ui::ET_MOUSEWHEEL 373 event->type() == ui::ET_MOUSEWHEEL
374 ? CreateMouseWheelEventInWindow(window_, event) 374 ? CreateMouseWheelEventInWindow(window_, event)
375 : CreateMouseEventInWindow(window_, event->type(), event->location(), 375 : CreateMouseEventInWindow(window_, event->type(), event->location(),
376 event->changed_button_flags()); 376 event->changed_button_flags());
377 377
378 if (owner_->targeting_application()) 378 using Target = ui::test::EventGenerator::Target;
379 [NSApp sendEvent:ns_event]; 379 switch (owner_->target()) {
380 else 380 case Target::APPLICATION:
381 EmulateSendEvent(window_, ns_event); 381 [NSApp sendEvent:ns_event];
382 break;
383 case Target::WINDOW:
384 [window_ sendEvent:ns_event];
385 break;
386 case Target::WIDGET:
387 EmulateSendEvent(window_, ns_event);
388 break;
389 }
382 } 390 }
383 391
384 void EventGeneratorDelegateMac::OnKeyEvent(ui::KeyEvent* event) { 392 void EventGeneratorDelegateMac::OnKeyEvent(ui::KeyEvent* event) {
385 NSUInteger modifiers = EventFlagsToModifiers(event->flags()); 393 NSUInteger modifiers = EventFlagsToModifiers(event->flags());
386 NSEvent* ns_event = cocoa_test_event_utils::SynthesizeKeyEvent( 394 NSEvent* ns_event = cocoa_test_event_utils::SynthesizeKeyEvent(
387 window_, event->type() == ui::ET_KEY_PRESSED, event->key_code(), 395 window_, event->type() == ui::ET_KEY_PRESSED, event->key_code(),
388 modifiers, event->is_char() ? event->GetDomKey() : ui::DomKey::NONE); 396 modifiers, event->is_char() ? event->GetDomKey() : ui::DomKey::NONE);
389 if (owner_->targeting_application()) { 397
390 [NSApp sendEvent:ns_event]; 398 using Target = ui::test::EventGenerator::Target;
391 return; 399 switch (owner_->target()) {
400 case Target::APPLICATION:
401 [NSApp sendEvent:ns_event];
402 break;
403 case Target::WINDOW:
404 [window_ sendEvent:ns_event];
405 break;
406 case Target::WIDGET:
407 if ([fake_menu_ performKeyEquivalent:ns_event])
408 return;
409
410 EmulateSendEvent(window_, ns_event);
411 break;
392 } 412 }
393
394 if ([fake_menu_ performKeyEquivalent:ns_event])
395 return;
396
397 EmulateSendEvent(window_, ns_event);
398 } 413 }
399 414
400 void EventGeneratorDelegateMac::OnTouchEvent(ui::TouchEvent* event) { 415 void EventGeneratorDelegateMac::OnTouchEvent(ui::TouchEvent* event) {
401 NOTREACHED() << "Touchscreen events not supported on Chrome Mac."; 416 NOTREACHED() << "Touchscreen events not supported on Chrome Mac.";
402 } 417 }
403 418
404 void EventGeneratorDelegateMac::OnScrollEvent(ui::ScrollEvent* event) { 419 void EventGeneratorDelegateMac::OnScrollEvent(ui::ScrollEvent* event) {
405 // Ignore FLING_CANCEL. Cocoa provides a continuous stream of events during a 420 // Ignore FLING_CANCEL. Cocoa provides a continuous stream of events during a
406 // fling. For now, this method simulates a momentum stream using a single 421 // fling. For now, this method simulates a momentum stream using a single
407 // update with a momentum phase (plus begin/end phase events), triggered when 422 // update with a momentum phase (plus begin/end phase events), triggered when
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 - (NSEvent*)currentEvent { 609 - (NSEvent*)currentEvent {
595 if (g_current_event) 610 if (g_current_event)
596 return g_current_event; 611 return g_current_event;
597 612
598 // Find the original implementation and invoke it. 613 // Find the original implementation and invoke it.
599 IMP original = EventGeneratorDelegateMac::GetInstance()->CurrentEventMethod(); 614 IMP original = EventGeneratorDelegateMac::GetInstance()->CurrentEventMethod();
600 return original(self, _cmd); 615 return original(self, _cmd);
601 } 616 }
602 617
603 @end 618 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698