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

Side by Side Diff: ui/events/event.cc

Issue 492863002: mojo: Plumb through sufficient context to make real blink::WebInputEvents. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix ozone compile. Created 6 years, 4 months 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 | Annotate | Revision Log
OLDNEW
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/events/event.h" 5 #include "ui/events/event.h"
6 6
7 #if defined(USE_X11) 7 #if defined(USE_X11)
8 #include <X11/extensions/XInput2.h> 8 #include <X11/extensions/XInput2.h>
9 #include <X11/Xlib.h> 9 #include <X11/Xlib.h>
10 #endif 10 #endif
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 gfx::DecomposedTransform decomp; 531 gfx::DecomposedTransform decomp;
532 bool success = gfx::DecomposeTransform(&decomp, inverted_root_transform); 532 bool success = gfx::DecomposeTransform(&decomp, inverted_root_transform);
533 DCHECK(success); 533 DCHECK(success);
534 if (decomp.scale[0]) 534 if (decomp.scale[0])
535 radius_x_ *= decomp.scale[0]; 535 radius_x_ *= decomp.scale[0];
536 if (decomp.scale[1]) 536 if (decomp.scale[1])
537 radius_y_ *= decomp.scale[1]; 537 radius_y_ *= decomp.scale[1];
538 } 538 }
539 539
540 //////////////////////////////////////////////////////////////////////////////// 540 ////////////////////////////////////////////////////////////////////////////////
541 // KeyEvent::ExtendedMojoData
542
543 struct KeyEvent::ExtendedMojoData {
544 int32_t windows_key_code;
545 int32_t native_key_code;
546 uint16_t text;
547 uint16_t unmodified_text;
548 };
549
550 ////////////////////////////////////////////////////////////////////////////////
541 // KeyEvent 551 // KeyEvent
542 552
543 // static 553 // static
544 KeyEvent* KeyEvent::last_key_event_ = NULL; 554 KeyEvent* KeyEvent::last_key_event_ = NULL;
545 555
546 // static 556 // static
547 bool KeyEvent::IsRepeated(const KeyEvent& event) { 557 bool KeyEvent::IsRepeated(const KeyEvent& event) {
548 // A safe guard in case if there were continous key pressed events that are 558 // A safe guard in case if there were continous key pressed events that are
549 // not auto repeat. 559 // not auto repeat.
550 const int kMaxAutoRepeatTimeMs = 2000; 560 const int kMaxAutoRepeatTimeMs = 2000;
(...skipping 26 matching lines...) Expand all
577 } 587 }
578 588
579 KeyEvent::KeyEvent(const base::NativeEvent& native_event) 589 KeyEvent::KeyEvent(const base::NativeEvent& native_event)
580 : Event(native_event, 590 : Event(native_event,
581 EventTypeFromNative(native_event), 591 EventTypeFromNative(native_event),
582 EventFlagsFromNative(native_event)), 592 EventFlagsFromNative(native_event)),
583 key_code_(KeyboardCodeFromNative(native_event)), 593 key_code_(KeyboardCodeFromNative(native_event)),
584 code_(CodeFromNative(native_event)), 594 code_(CodeFromNative(native_event)),
585 is_char_(IsCharFromNative(native_event)), 595 is_char_(IsCharFromNative(native_event)),
586 platform_keycode_(PlatformKeycodeFromNative(native_event)), 596 platform_keycode_(PlatformKeycodeFromNative(native_event)),
587 character_(0) { 597 character_(0),
598 extended_mojo_data_() {
sky 2014/08/21 15:44:42 nit: remove as not needed (from all of these).
588 if (IsRepeated(*this)) 599 if (IsRepeated(*this))
589 set_flags(flags() | ui::EF_IS_REPEAT); 600 set_flags(flags() | ui::EF_IS_REPEAT);
590 601
591 #if defined(USE_X11) 602 #if defined(USE_X11)
592 NormalizeFlags(); 603 NormalizeFlags();
593 #endif 604 #endif
594 } 605 }
595 606
596 KeyEvent::KeyEvent(EventType type, 607 KeyEvent::KeyEvent(EventType type,
597 KeyboardCode key_code, 608 KeyboardCode key_code,
598 int flags) 609 int flags)
599 : Event(type, EventTimeForNow(), flags), 610 : Event(type, EventTimeForNow(), flags),
600 key_code_(key_code), 611 key_code_(key_code),
601 is_char_(false), 612 is_char_(false),
602 platform_keycode_(0), 613 platform_keycode_(0),
603 character_(GetCharacterFromKeyCode(key_code, flags)) { 614 character_(GetCharacterFromKeyCode(key_code, flags)),
615 extended_mojo_data_() {
604 } 616 }
605 617
606 KeyEvent::KeyEvent(EventType type, 618 KeyEvent::KeyEvent(EventType type,
607 KeyboardCode key_code, 619 KeyboardCode key_code,
608 const std::string& code, 620 const std::string& code,
609 int flags) 621 int flags)
610 : Event(type, EventTimeForNow(), flags), 622 : Event(type, EventTimeForNow(), flags),
611 key_code_(key_code), 623 key_code_(key_code),
612 code_(code), 624 code_(code),
613 is_char_(false), 625 is_char_(false),
614 platform_keycode_(0), 626 platform_keycode_(0),
615 character_(GetCharacterFromKeyCode(key_code, flags)) { 627 character_(GetCharacterFromKeyCode(key_code, flags)),
628 extended_mojo_data_() {
616 } 629 }
617 630
618 KeyEvent::KeyEvent(base::char16 character, KeyboardCode key_code, int flags) 631 KeyEvent::KeyEvent(base::char16 character, KeyboardCode key_code, int flags)
619 : Event(ET_KEY_PRESSED, EventTimeForNow(), flags), 632 : Event(ET_KEY_PRESSED, EventTimeForNow(), flags),
620 key_code_(key_code), 633 key_code_(key_code),
621 code_(""), 634 code_(""),
622 is_char_(true), 635 is_char_(true),
623 character_(character) { 636 platform_keycode_(0),
637 character_(character),
638 extended_mojo_data_() {
639 }
640
641 KeyEvent::KeyEvent(const KeyEvent& rhs)
642 : Event(rhs),
643 key_code_(rhs.key_code_),
644 code_(rhs.code_),
645 is_char_(rhs.is_char_),
646 platform_keycode_(rhs.platform_keycode_),
647 character_(rhs.character_),
648 extended_mojo_data_() {
649 if (rhs.extended_mojo_data_) {
sky 2014/08/21 15:44:42 Why the setter and not just copy rhs.extended_mojo
650 SetSelfContainedKeyEventData(rhs.extended_mojo_data_->windows_key_code,
651 platform_keycode_,
652 rhs.extended_mojo_data_->text,
653 rhs.extended_mojo_data_->unmodified_text);
654 }
655 }
656
657 KeyEvent& KeyEvent::operator=(const KeyEvent& rhs) {
658 if (this != &rhs) {
659 Event::operator=(rhs);
660 key_code_ = rhs.key_code_;
661 code_ = rhs.code_;
662 is_char_ = rhs.is_char_;
663 platform_keycode_ = rhs.platform_keycode_;
664 character_ = rhs.character_;
665
666 if (rhs.extended_mojo_data_) {
667 SetSelfContainedKeyEventData(rhs.extended_mojo_data_->windows_key_code,
668 platform_keycode_,
669 rhs.extended_mojo_data_->text,
670 rhs.extended_mojo_data_->unmodified_text);
671 }
672 }
673 return *this;
674 }
675
676 KeyEvent::~KeyEvent() {}
677
678 void KeyEvent::SetSelfContainedKeyEventData(int32_t windows_key_code,
679 int32_t platform_key_code,
680 base::char16 text,
681 base::char16 unmodified_text) {
682 extended_mojo_data_.reset(new ExtendedMojoData);
683 extended_mojo_data_->windows_key_code = windows_key_code;
684 extended_mojo_data_->text = text;
685 extended_mojo_data_->unmodified_text = unmodified_text;
686
sky 2014/08/21 15:44:42 You don't set native_key_code
687 platform_keycode_ = platform_key_code;
688 }
689
690 int32_t KeyEvent::GetWindowsKeyCode() const {
691 if (HasNativeEvent())
692 return ui::WindowsKeycodeFromNative(native_event());
693 else if (extended_mojo_data_)
sky 2014/08/21 15:44:42 nit: no else after a return (for all of these).
694 return extended_mojo_data_->windows_key_code;
695
696 NOTREACHED();
697 return 0;
698 }
699
700 base::char16 KeyEvent::GetKeyText() const {
701 if (HasNativeEvent())
702 return ui::TextFromNative(native_event());
703 else if (extended_mojo_data_)
704 return extended_mojo_data_->text;
705
706 NOTREACHED();
707 return 0;
708 }
709
710 base::char16 KeyEvent::GetKeyUnmodifiedText() const {
711 if (HasNativeEvent())
712 return ui::UnmodifiedTextFromNative(native_event());
713 else if (extended_mojo_data_)
714 return extended_mojo_data_->unmodified_text;
715
716 NOTREACHED();
717 return 0;
624 } 718 }
625 719
626 base::char16 KeyEvent::GetCharacter() const { 720 base::char16 KeyEvent::GetCharacter() const {
627 if (character_) 721 if (character_)
628 return character_; 722 return character_;
629 723
630 #if defined(OS_WIN) 724 #if defined(OS_WIN)
631 return (native_event().message == WM_CHAR) ? key_code_ : 725 return (native_event().message == WM_CHAR) ? key_code_ :
632 GetCharacterFromKeyCode(key_code_, flags()); 726 GetCharacterFromKeyCode(key_code_, flags());
633 #elif defined(USE_X11) 727 #elif defined(USE_X11)
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 gfx::PointF(x, y), 885 gfx::PointF(x, y),
792 time_stamp, 886 time_stamp,
793 flags | EF_FROM_TOUCH), 887 flags | EF_FROM_TOUCH),
794 details_(details) { 888 details_(details) {
795 } 889 }
796 890
797 GestureEvent::~GestureEvent() { 891 GestureEvent::~GestureEvent() {
798 } 892 }
799 893
800 } // namespace ui 894 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698