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

Unified Diff: views/controls/textfield/native_textfield_win.cc

Issue 6487002: Add a new constructor to KeyEvent. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: views/controls/textfield/native_textfield_win.cc
===================================================================
--- views/controls/textfield/native_textfield_win.cc (revision 74437)
+++ views/controls/textfield/native_textfield_win.cc (working copy)
@@ -488,7 +488,7 @@
// NativeTextfieldWin, private:
void NativeTextfieldWin::OnChar(TCHAR ch, UINT repeat_count, UINT flags) {
- HandleKeystroke(GetCurrentMessage()->message, ch, repeat_count, flags);
+ HandleKeystroke();
}
void NativeTextfieldWin::OnContextMenu(HWND window, const POINT& point) {
@@ -687,7 +687,7 @@
// CRichEditCtrl changes its text on WM_KEYDOWN instead of WM_CHAR for many
// different keys (backspace, ctrl-v, ...), so we call this in both cases.
- HandleKeystroke(GetCurrentMessage()->message, key, repeat_count, flags);
+ HandleKeystroke();
}
void NativeTextfieldWin::OnLButtonDblClk(UINT keys, const CPoint& point) {
@@ -931,45 +931,21 @@
SetMsgHandled(false);
}
-void NativeTextfieldWin::HandleKeystroke(UINT message,
- TCHAR key,
- UINT repeat_count,
- UINT flags) {
+void NativeTextfieldWin::HandleKeystroke() {
+ const MSG* msg = GetCurrentMessage();
ScopedFreeze freeze(this, GetTextObjectModel());
Textfield::Controller* controller = textfield_->GetController();
bool handled = false;
if (controller) {
- ui::EventType type;
- switch (message) {
- case WM_KEYDOWN:
- case WM_SYSKEYDOWN:
- case WM_CHAR:
- case WM_SYSCHAR:
- type = ui::ET_KEY_PRESSED;
- break;
- case WM_KEYUP:
- case WM_SYSKEYUP:
- type = ui::ET_KEY_RELEASED;
- break;
- default:
- NOTREACHED() << "Unknown message:" << message;
- // Passing through to avoid crash on release build.
- type = ui::ET_KEY_PRESSED;
- }
- KeyEvent key_event(type,
- ui::KeyboardCodeForWindowsKeyCode(key),
- KeyEvent::GetKeyStateFlags(),
- repeat_count,
- flags,
- message);
- handled = controller->HandleKeyEvent(textfield_, key_event);
+ KeyEvent event(*msg);
+ handled = controller->HandleKeyEvent(textfield_, event);
}
if (!handled) {
OnBeforePossibleChange();
- if (key == ui::VKEY_HOME || key == ui::VKEY_END) {
+ if (msg->wParam == ui::VKEY_HOME || msg->wParam == ui::VKEY_END) {
// DefWindowProc() might reset the keyboard layout when it receives a
// keydown event for VKEY_HOME or VKEY_END. When the window was created
// with WS_EX_LAYOUTRTL and the current keyboard layout is not a RTL one,
@@ -984,10 +960,10 @@
// change behavior is surprising and inconsistent with keyboard behavior
// elsewhere, so reset the layout in this case.
HKL layout = GetKeyboardLayout(0);
- DefWindowProc(message, key, MAKELPARAM(repeat_count, flags));
+ DefWindowProc(msg->message, msg->wParam, msg->lParam);
ActivateKeyboardLayout(layout, KLF_REORDER);
} else {
- DefWindowProc(message, key, MAKELPARAM(repeat_count, flags));
+ DefWindowProc(msg->message, msg->wParam, msg->lParam);
}
// CRichEditCtrl automatically turns on IMF_AUTOKEYBOARD when the user

Powered by Google App Engine
This is Rietveld 408576698