diff options
author | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-19 20:39:08 +0000 |
---|---|---|
committer | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-19 20:39:08 +0000 |
commit | aef658f4ee345e0129b3c8b097e16d7f26274a2c (patch) | |
tree | 8ff9fa755219c46dd4a9ddfe8b005f30974a3d0e /ash/wm | |
parent | 2e57e71e3bfa08d13042892267f8be77a3ae7cc1 (diff) | |
download | chromium_src-aef658f4ee345e0129b3c8b097e16d7f26274a2c.zip chromium_src-aef658f4ee345e0129b3c8b097e16d7f26274a2c.tar.gz chromium_src-aef658f4ee345e0129b3c8b097e16d7f26274a2c.tar.bz2 |
ash: Use correct cursor when dragging out a tab over the omnibox
Dragging a tab out of the tabstrip by dragging it down over the omnibox can
result in an I-beam cursor during the move-drag of the new window. This
happens because RunMoveLoop() from the TabDragController releases mouse
capture for the source browser window, which resets the cursor pointer based
on the last mouse position. This will be an I-beam if the mouse was over the
omnibox.
Since we don't ever want an old/out-of-date cursor during a window drag,
sanitize it to an arrow pointer for mouse-based window moves.
BUG=242118
TEST=manual, slowly drag out a tab downward over the omnibox
Review URL: https://chromiumcodereview.appspot.com/19035002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212644 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/wm')
-rw-r--r-- | ash/wm/toplevel_window_event_handler.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/ash/wm/toplevel_window_event_handler.cc b/ash/wm/toplevel_window_event_handler.cc index eb944c5..71753c4 100644 --- a/ash/wm/toplevel_window_event_handler.cc +++ b/ash/wm/toplevel_window_event_handler.cc @@ -324,11 +324,13 @@ aura::client::WindowMoveResult ToplevelWindowEventHandler::RunMoveLoop( aura::Window::ConvertPointToTarget( root_window, source->parent(), &drag_location); } - CreateScopedWindowResizer(source, drag_location, HTCAPTION, move_source); + // Set the cursor before calling CreateScopedWindowResizer(), as that will + // eventually call LockCursor() and prevent the cursor from changing. aura::client::CursorClient* cursor_client = aura::client::GetCursorClient(root_window); if (cursor_client) cursor_client->SetCursor(ui::kCursorPointer); + CreateScopedWindowResizer(source, drag_location, HTCAPTION, move_source); bool destroyed = false; destroyed_ = &destroyed; #if !defined(OS_MACOSX) |