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

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

Issue 2923723002: Avoid toggling app list if interrupted by mouse (Closed)
Patch Set: Add unit test in accelerator_filter_unittest.cc 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 | « ash/accelerators/accelerator_filter_unittest.cc ('k') | ui/base/accelerators/accelerator.cc » ('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 // This class describe a keyboard accelerator (or keyboard shortcut). 5 // This class describe a keyboard accelerator (or keyboard shortcut).
6 // Keyboard accelerators are registered with the FocusManager. 6 // Keyboard accelerators are registered with the FocusManager.
7 // It has a copy constructor and assignment operator so that it can be copied. 7 // It has a copy constructor and assignment operator so that it can be copied.
8 // It also defines the < operator so that it can be used as a key in a std::map. 8 // It also defines the < operator so that it can be used as a key in a std::map.
9 // 9 //
10 10
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 82
83 void set_platform_accelerator(std::unique_ptr<PlatformAccelerator> p) { 83 void set_platform_accelerator(std::unique_ptr<PlatformAccelerator> p) {
84 platform_accelerator_ = std::move(p); 84 platform_accelerator_ = std::move(p);
85 } 85 }
86 86
87 // This class keeps ownership of the returned object. 87 // This class keeps ownership of the returned object.
88 const PlatformAccelerator* platform_accelerator() const { 88 const PlatformAccelerator* platform_accelerator() const {
89 return platform_accelerator_.get(); 89 return platform_accelerator_.get();
90 } 90 }
91 91
92 void set_interrupted_by_mouse_event(bool interrupted_by_mouse_event) {
93 interrupted_by_mouse_event_ = interrupted_by_mouse_event;
94 }
95
96 bool is_interrupted_by_mouse_event() const {
oshima 2017/07/07 22:28:41 nit: interrupted_by_mouse_event() (or you can ren
weidongg 2017/07/07 22:55:31 Done.
97 return interrupted_by_mouse_event_;
98 }
99
92 private: 100 private:
93 // The keycode (VK_...). 101 // The keycode (VK_...).
94 KeyboardCode key_code_; 102 KeyboardCode key_code_;
95 103
96 KeyState key_state_; 104 KeyState key_state_;
97 105
98 // The state of the Shift/Ctrl/Alt keys. This corresponds to Event::flags(). 106 // The state of the Shift/Ctrl/Alt keys. This corresponds to Event::flags().
99 int modifiers_; 107 int modifiers_;
100 108
101 // Stores platform specific data. May be NULL. 109 // Stores platform specific data. May be NULL.
102 // TODO: this is only used in Mac code and should be removed from here. 110 // TODO: this is only used in Mac code and should be removed from here.
103 // http://crbug.com/702823. 111 // http://crbug.com/702823.
104 std::unique_ptr<PlatformAccelerator> platform_accelerator_; 112 std::unique_ptr<PlatformAccelerator> platform_accelerator_;
113
114 // Whether the accelerator is interrupted by a mouse press/release. This is
115 // optionally used by AcceleratorController. Even this is set to true, the
116 // accelerator may still be handled successfully. (Currently only
117 // TOGGLE_APP_LIST is disabled when mouse press/release occurs between
118 // search key down and up. See crbug.com/665897)
119 bool interrupted_by_mouse_event_;
105 }; 120 };
106 121
107 // An interface that classes that want to register for keyboard accelerators 122 // An interface that classes that want to register for keyboard accelerators
108 // should implement. 123 // should implement.
109 class UI_BASE_EXPORT AcceleratorTarget { 124 class UI_BASE_EXPORT AcceleratorTarget {
110 public: 125 public:
111 // Should return true if the accelerator was processed. 126 // Should return true if the accelerator was processed.
112 virtual bool AcceleratorPressed(const Accelerator& accelerator) = 0; 127 virtual bool AcceleratorPressed(const Accelerator& accelerator) = 0;
113 128
114 // Should return true if the target can handle the accelerator events. The 129 // Should return true if the target can handle the accelerator events. The
(...skipping 15 matching lines...) Expand all
130 virtual bool GetAcceleratorForCommandId(int command_id, 145 virtual bool GetAcceleratorForCommandId(int command_id,
131 Accelerator* accelerator) const = 0; 146 Accelerator* accelerator) const = 0;
132 147
133 protected: 148 protected:
134 virtual ~AcceleratorProvider() {} 149 virtual ~AcceleratorProvider() {}
135 }; 150 };
136 151
137 } // namespace ui 152 } // namespace ui
138 153
139 #endif // UI_BASE_ACCELERATORS_ACCELERATOR_H_ 154 #endif // UI_BASE_ACCELERATORS_ACCELERATOR_H_
OLDNEW
« no previous file with comments | « ash/accelerators/accelerator_filter_unittest.cc ('k') | ui/base/accelerators/accelerator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698