summaryrefslogtreecommitdiffstats
path: root/chrome/views/controls/combo_box.cc
diff options
context:
space:
mode:
authorjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-05 18:55:56 +0000
committerjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-05 18:55:56 +0000
commit6a5d60cb0eba921af8e79e80cb6c8abaa6d8c68e (patch)
treec8feb27a2efd71f838c5be6281892c5ef3a11e92 /chrome/views/controls/combo_box.cc
parentc93a0456024db87edcd92ef8c34de008afb42356 (diff)
downloadchromium_src-6a5d60cb0eba921af8e79e80cb6c8abaa6d8c68e.zip
chromium_src-6a5d60cb0eba921af8e79e80cb6c8abaa6d8c68e.tar.gz
chromium_src-6a5d60cb0eba921af8e79e80cb6c8abaa6d8c68e.tar.bz2
Landing the CL from Yusukes.
See http://codereview.chromium.org/99311 TBR=yusukes Review URL: http://codereview.chromium.org/109030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15317 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/views/controls/combo_box.cc')
-rw-r--r--chrome/views/controls/combo_box.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/chrome/views/controls/combo_box.cc b/chrome/views/controls/combo_box.cc
index 6d62fce..eaf8a07 100644
--- a/chrome/views/controls/combo_box.cc
+++ b/chrome/views/controls/combo_box.cc
@@ -67,6 +67,19 @@ gfx::Size ComboBox::GetPreferredSize() {
return gfx::Size(pref_width, pref_height);
}
+// VK_ESCAPE should be handled by this view when the drop down list is active.
+// In other words, the list should be closed instead of the dialog.
+bool ComboBox::OverrideAccelerator(const Accelerator& accelerator) {
+ if (accelerator != Accelerator(VK_ESCAPE, false, false, false))
+ return false;
+
+ HWND hwnd = GetNativeControlHWND();
+ if (!hwnd)
+ return false;
+
+ return ::SendMessage(hwnd, CB_GETDROPPEDSTATE, 0, 0) != 0;
+}
+
HWND ComboBox::CreateNativeControl(HWND parent_container) {
HWND r = ::CreateWindowEx(GetAdditionalExStyle(), L"COMBOBOX", L"",
WS_CHILD | WS_VSCROLL | CBS_DROPDOWNLIST,