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

Side by Side Diff: ui/base/accelerators/accelerator.cc

Issue 2923723002: Avoid toggling app list if interrupted by mouse (Closed)
Patch Set: Rebase and refactor is_interrupted_by_mouse_event() to interrupted_by_mouse_event() Created 3 years, 5 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
« no previous file with comments | « ui/base/accelerators/accelerator.h ('k') | ui/base/accelerators/accelerator_history.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/base/accelerators/accelerator.h" 5 #include "ui/base/accelerators/accelerator.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/i18n/rtl.h" 9 #include "base/i18n/rtl.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 24 matching lines...) Expand all
35 35
36 } // namespace 36 } // namespace
37 37
38 Accelerator::Accelerator() : Accelerator(VKEY_UNKNOWN, EF_NONE) {} 38 Accelerator::Accelerator() : Accelerator(VKEY_UNKNOWN, EF_NONE) {}
39 39
40 Accelerator::Accelerator(KeyboardCode key_code, 40 Accelerator::Accelerator(KeyboardCode key_code,
41 int modifiers, 41 int modifiers,
42 KeyState key_state) 42 KeyState key_state)
43 : key_code_(key_code), 43 : key_code_(key_code),
44 key_state_(key_state), 44 key_state_(key_state),
45 modifiers_(modifiers & kInterestingFlagsMask) {} 45 modifiers_(modifiers & kInterestingFlagsMask),
46 interrupted_by_mouse_event_(false) {}
46 47
47 Accelerator::Accelerator(const KeyEvent& key_event) 48 Accelerator::Accelerator(const KeyEvent& key_event)
48 : key_code_(key_event.key_code()), 49 : key_code_(key_event.key_code()),
49 key_state_(key_event.type() == ET_KEY_PRESSED ? KeyState::PRESSED 50 key_state_(key_event.type() == ET_KEY_PRESSED ? KeyState::PRESSED
50 : KeyState::RELEASED), 51 : KeyState::RELEASED),
51 // |modifiers_| may include the repeat flag. 52 // |modifiers_| may include the repeat flag.
52 modifiers_(key_event.flags() & kInterestingFlagsMask) {} 53 modifiers_(key_event.flags() & kInterestingFlagsMask),
54 interrupted_by_mouse_event_(false) {}
53 55
54 Accelerator::Accelerator(const Accelerator& accelerator) { 56 Accelerator::Accelerator(const Accelerator& accelerator) {
55 key_code_ = accelerator.key_code_; 57 key_code_ = accelerator.key_code_;
56 key_state_ = accelerator.key_state_; 58 key_state_ = accelerator.key_state_;
57 modifiers_ = accelerator.modifiers_; 59 modifiers_ = accelerator.modifiers_;
60 interrupted_by_mouse_event_ = accelerator.interrupted_by_mouse_event_;
58 if (accelerator.platform_accelerator_) 61 if (accelerator.platform_accelerator_)
59 platform_accelerator_ = accelerator.platform_accelerator_->CreateCopy(); 62 platform_accelerator_ = accelerator.platform_accelerator_->CreateCopy();
60 } 63 }
61 64
62 Accelerator::~Accelerator() { 65 Accelerator::~Accelerator() {
63 } 66 }
64 67
65 // static 68 // static
66 int Accelerator::MaskOutKeyEventFlags(int flags) { 69 int Accelerator::MaskOutKeyEventFlags(int flags) {
67 return flags & kModifierMask; 70 return flags & kModifierMask;
68 } 71 }
69 72
70 Accelerator& Accelerator::operator=(const Accelerator& accelerator) { 73 Accelerator& Accelerator::operator=(const Accelerator& accelerator) {
71 if (this != &accelerator) { 74 if (this != &accelerator) {
72 key_code_ = accelerator.key_code_; 75 key_code_ = accelerator.key_code_;
73 key_state_ = accelerator.key_state_; 76 key_state_ = accelerator.key_state_;
74 modifiers_ = accelerator.modifiers_; 77 modifiers_ = accelerator.modifiers_;
78 interrupted_by_mouse_event_ = accelerator.interrupted_by_mouse_event_;
75 if (accelerator.platform_accelerator_) 79 if (accelerator.platform_accelerator_)
76 platform_accelerator_ = accelerator.platform_accelerator_->CreateCopy(); 80 platform_accelerator_ = accelerator.platform_accelerator_->CreateCopy();
77 else 81 else
78 platform_accelerator_.reset(); 82 platform_accelerator_.reset();
79 } 83 }
80 return *this; 84 return *this;
81 } 85 }
82 86
83 bool Accelerator::operator <(const Accelerator& rhs) const { 87 bool Accelerator::operator <(const Accelerator& rhs) const {
84 if (key_code_ != rhs.key_code_) 88 if (key_code_ != rhs.key_code_)
85 return key_code_ < rhs.key_code_; 89 return key_code_ < rhs.key_code_;
86 if (key_state_ != rhs.key_state_) { 90 if (key_state_ != rhs.key_state_) {
87 return static_cast<int32_t>(key_state_) < 91 return static_cast<int32_t>(key_state_) <
88 static_cast<int32_t>(rhs.key_state_); 92 static_cast<int32_t>(rhs.key_state_);
89 } 93 }
90 return MaskOutKeyEventFlags(modifiers_) < 94 return MaskOutKeyEventFlags(modifiers_) <
91 MaskOutKeyEventFlags(rhs.modifiers_); 95 MaskOutKeyEventFlags(rhs.modifiers_);
92 } 96 }
93 97
94 bool Accelerator::operator ==(const Accelerator& rhs) const { 98 bool Accelerator::operator ==(const Accelerator& rhs) const {
95 return (key_code_ == rhs.key_code_) && (key_state_ == rhs.key_state_) && 99 return (key_code_ == rhs.key_code_) && (key_state_ == rhs.key_state_) &&
96 (MaskOutKeyEventFlags(modifiers_) == 100 (MaskOutKeyEventFlags(modifiers_) ==
97 MaskOutKeyEventFlags(rhs.modifiers_)); 101 MaskOutKeyEventFlags(rhs.modifiers_)) &&
102 interrupted_by_mouse_event_ == rhs.interrupted_by_mouse_event_;
98 } 103 }
99 104
100 bool Accelerator::operator !=(const Accelerator& rhs) const { 105 bool Accelerator::operator !=(const Accelerator& rhs) const {
101 return !(*this == rhs); 106 return !(*this == rhs);
102 } 107 }
103 108
104 bool Accelerator::IsShiftDown() const { 109 bool Accelerator::IsShiftDown() const {
105 return (modifiers_ & EF_SHIFT_DOWN) != 0; 110 return (modifiers_ & EF_SHIFT_DOWN) != 0;
106 } 111 }
107 112
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 288
284 // Subtracting the size of the shortcut key and 1 for the '+' sign. 289 // Subtracting the size of the shortcut key and 1 for the '+' sign.
285 shortcut_rtl.append(shortcut, 0, shortcut.length() - key_length - 1); 290 shortcut_rtl.append(shortcut, 0, shortcut.length() - key_length - 1);
286 shortcut.swap(shortcut_rtl); 291 shortcut.swap(shortcut_rtl);
287 } 292 }
288 293
289 return shortcut; 294 return shortcut;
290 } 295 }
291 296
292 } // namespace ui 297 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/accelerators/accelerator.h ('k') | ui/base/accelerators/accelerator_history.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698