diff options
author | hshi@chromium.org <hshi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-17 23:24:03 +0000 |
---|---|---|
committer | hshi@chromium.org <hshi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-17 23:24:03 +0000 |
commit | f74c0b9c93bcaedfb24db034fbe43c717c947faf (patch) | |
tree | 53924949ed2a20133983eea459dad51cb17d6ac8 /ash/display | |
parent | ce6ff471a443a16302eacc9ff90ee73a2e1a4077 (diff) | |
download | chromium_src-f74c0b9c93bcaedfb24db034fbe43c717c947faf.zip chromium_src-f74c0b9c93bcaedfb24db034fbe43c717c947faf.tar.gz chromium_src-f74c0b9c93bcaedfb24db034fbe43c717c947faf.tar.bz2 |
Fix behavior of WindowEventDispatcher::SynthesizeMouseMoveEvent().
Synthetic mouse events should be generated when window bounds changes such
that the cursor previously outside the window becomes inside, or vice versa,
but subject to the following conditions:
- If one or more mouse buttons is down, we should synthesize MOUSE_DRAGGED
event instead of MOUSE_MOVED, and also set the appropriate mouse button flags.
- Do not generate synthesized mouse move events for windows that ignore events, such
as the cursor window, because they do not accept synthesized events and pass them
directly to the windows beneath.
After this fix we can safely re-enable cursor compositing mode.
BUG=363651
TEST=trybot and manual testing
R=derat@chromium.org, sadrul@chromium.org
Review URL: https://codereview.chromium.org/237893002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264669 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/display')
-rw-r--r-- | ash/display/mouse_cursor_event_filter.cc | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/ash/display/mouse_cursor_event_filter.cc b/ash/display/mouse_cursor_event_filter.cc index cbc2207..8807f99 100644 --- a/ash/display/mouse_cursor_event_filter.cc +++ b/ash/display/mouse_cursor_event_filter.cc @@ -98,10 +98,8 @@ void MouseCursorEventFilter::OnMouseEvent(ui::MouseEvent* event) { return; } - if (!(event->flags() & ui::EF_IS_SYNTHESIZED)) { - Shell::GetInstance()->display_controller()-> - cursor_window_controller()->UpdateLocation(); - } + Shell::GetInstance()->display_controller()-> + cursor_window_controller()->UpdateLocation(); gfx::Point point_in_screen(event->location()); wm::ConvertPointToScreen(target, &point_in_screen); |