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 3 // found in the LICENSE file. 4 5 #ifndef UI_VIEWS_CONTROLS_WEBVIEW_UNHANDLED_KEYBOARD_EVENT_HANDLER_H_ 6 #define UI_VIEWS_CONTROLS_WEBVIEW_UNHANDLED_KEYBOARD_EVENT_HANDLER_H_ 7 8 #include "base/basictypes.h" 9 #include "ui/views/controls/webview/webview_export.h" 10 11 namespace content { 12 struct NativeWebKeyboardEvent; 13 } 14 15 namespace views { 16 class FocusManager; 17 18 // This class handles unhandled keyboard messages coming back from the renderer 19 // process. 20 class WEBVIEW_EXPORT UnhandledKeyboardEventHandler { 21 public: 22 UnhandledKeyboardEventHandler(); 23 ~UnhandledKeyboardEventHandler(); 24 25 void HandleKeyboardEvent(const content::NativeWebKeyboardEvent& event, 26 FocusManager* focus_manager); 27 28 private: 29 #if defined(OS_WIN) 30 // Whether to ignore the next Char keyboard event. 31 // If a RawKeyDown event was handled as a shortcut key, then we're done 32 // handling it and should eat any Char event that the translate phase may 33 // have produced from it. (Handling this event may cause undesirable effects, 34 // such as a beep if DefWindowProc() has no default handling for the given 35 // Char.) 36 bool ignore_next_char_event_; 37 #endif 38 39 DISALLOW_COPY_AND_ASSIGN(UnhandledKeyboardEventHandler); 40 }; 41 42 } // namespace views 43 44 #endif // UI_VIEWS_CONTROLS_WEBVIEW_UNHANDLED_KEYBOARD_EVENT_HANDLER_H_ 45