Commit 7c7fc5c9 authored by Vasilii Sukhanov's avatar Vasilii Sukhanov Committed by Commit Bot

Dismiss the dropdown combobox when clicking outside of it.

There was a code that does it. However, it regressed at some point.
In https://chromium-review.googlesource.com/c/chromium/src/+/1638126/4/ui/views/controls/editable_combobox/editable_combobox.cc#273
it was suggested to compare event->flags() == event->changed_button_flags(). It
doesn't work anymore because changed_button_flags is EF_LEFT_MOUSE_BUTTON and
flags is EF_LEFT_MOUSE_BUTTON | EF_NUM_LOCK_ON.

Bug: 1016289
Change-Id: I463cdc5007161cf6a909c41bf8a96fd01ac841f5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1872578Reviewed-by: default avatarScott Violet <sky@chromium.org>
Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#708574}
parent d716deaf
......@@ -277,7 +277,7 @@ class EditableCombobox::EditableComboboxPreTargetHandler
// ui::EventHandler overrides.
void OnMouseEvent(ui::MouseEvent* event) override {
if (event->type() == ui::ET_MOUSE_PRESSED &&
event->flags() == event->changed_button_flags())
event->button_flags() == event->changed_button_flags())
HandlePressEvent(event->root_location());
}
......
......@@ -249,9 +249,9 @@ bool EditableComboboxTest::IsMenuOpen() {
void EditableComboboxTest::PerformMouseEvent(Widget* widget,
const gfx::Point& point,
const ui::EventType type) {
ui::MouseEvent event =
ui::MouseEvent(type, point, point, ui::EventTimeForNow(),
ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON);
ui::MouseEvent event = ui::MouseEvent(
type, point, point, ui::EventTimeForNow(),
ui::EF_LEFT_MOUSE_BUTTON | ui::EF_NUM_LOCK_ON, ui::EF_LEFT_MOUSE_BUTTON);
widget->OnMouseEvent(&event);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment