Skip to content

Commit 2c4723e

Browse files
committed
Merge pull request #667 from numbersint/feature/event-flags
Use the typed enum CefEventFlags for modifiers in keyboard events.
2 parents 69de937 + 04e1290 commit 2c4723e

File tree

3 files changed

+5
-22
lines changed

3 files changed

+5
-22
lines changed

CefSharp.Core/Internals/ClientAdapter.cpp

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -112,23 +112,6 @@ namespace CefSharp
112112
_browserControl->OnStatusMessage(valueStr);
113113
}
114114

115-
KeyType KeyTypeToManaged(cef_key_event_type_t keytype)
116-
{
117-
switch (keytype)
118-
{
119-
case KEYEVENT_RAWKEYDOWN:
120-
return KeyType::RawKeyDown;
121-
case KEYEVENT_KEYDOWN:
122-
return KeyType::KeyDown;
123-
case KEYEVENT_KEYUP:
124-
return KeyType::KeyUp;
125-
case KEYEVENT_CHAR:
126-
return KeyType::Char;
127-
default:
128-
throw gcnew ArgumentOutOfRangeException("keytype", String::Format("'{0}' is not a valid keytype", gcnew array<Object^>(keytype)));
129-
}
130-
}
131-
132115
bool ClientAdapter::OnKeyEvent(CefRefPtr<CefBrowser> browser, const CefKeyEvent& event, CefEventHandle os_event)
133116
{
134117
IKeyboardHandler^ handler = _browserControl->KeyboardHandler;
@@ -140,7 +123,7 @@ namespace CefSharp
140123

141124
// TODO: windows_key_code could possibly be the wrong choice here (the OnKeyEvent signature has changed since CEF1). The
142125
// other option would be native_key_code.
143-
return handler->OnKeyEvent(_browserControl, KeyTypeToManaged(event.type), event.windows_key_code, event.modifiers, event.is_system_key == 1);
126+
return handler->OnKeyEvent(_browserControl, (KeyType)event.type, event.windows_key_code, (CefEventFlags)event.modifiers, event.is_system_key == 1);
144127
}
145128

146129
bool ClientAdapter::OnPreKeyEvent(CefRefPtr<CefBrowser> browser, const CefKeyEvent& event, CefEventHandle os_event, bool* is_keyboard_shortcut)
@@ -152,7 +135,7 @@ namespace CefSharp
152135
return false;
153136
}
154137

155-
return handler->OnPreKeyEvent(_browserControl, (KeyType)event.type, event.windows_key_code, event.native_key_code, event.modifiers, event.is_system_key == 1, *is_keyboard_shortcut);
138+
return handler->OnPreKeyEvent(_browserControl, (KeyType)event.type, event.windows_key_code, event.native_key_code, (CefEventFlags)event.modifiers, event.is_system_key == 1, *is_keyboard_shortcut);
156139
}
157140

158141
void ClientAdapter::OnLoadStart(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame)

CefSharp/IKeyboardHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace CefSharp
66
{
77
public interface IKeyboardHandler
88
{
9-
bool OnKeyEvent(IWebBrowser browser, KeyType type, int code, int modifiers, bool isSystemKey);
10-
bool OnPreKeyEvent(IWebBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, int modifiers, bool isSystemKey, bool isKeyboardShortcut);
9+
bool OnKeyEvent(IWebBrowser browser, KeyType type, int code, CefEventFlags modifiers, bool isSystemKey);
10+
bool OnPreKeyEvent(IWebBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey, bool isKeyboardShortcut);
1111
}
1212
}

CefSharp/KeyType.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace CefSharp
66
{
77
public enum KeyType
88
{
9-
RawKeyDown,
9+
RawKeyDown = 0,
1010
KeyDown,
1111
KeyUp,
1212
Char,

0 commit comments

Comments
 (0)