diff options
author | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-11 23:39:16 +0000 |
---|---|---|
committer | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-11 23:39:16 +0000 |
commit | 04ec34734c2d146576a143bf4fef5ffb710fcf07 (patch) | |
tree | bdb54b90426c2d87f370edd626ebd640a15b2175 | |
parent | 336990645426e19827ce02109768ef59bbfc9615 (diff) | |
download | chromium_src-04ec34734c2d146576a143bf4fef5ffb710fcf07.zip chromium_src-04ec34734c2d146576a143bf4fef5ffb710fcf07.tar.gz chromium_src-04ec34734c2d146576a143bf4fef5ffb710fcf07.tar.bz2 |
Prevents dragging into a window with a modal dialog.
BUG=336691
R=sky@chromium.org
TEST=manually
Review URL: https://codereview.chromium.org/234073002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263410 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/ui/views/tabs/tab_drag_controller.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc index a80e2df..624c229 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc +++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc @@ -44,6 +44,7 @@ #include "ui/views/focus/view_storage.h" #include "ui/views/widget/root_view.h" #include "ui/views/widget/widget.h" +#include "ui/wm/core/window_modality_controller.h" #if defined(USE_ASH) #include "ash/accelerators/accelerator_commands.h" @@ -925,9 +926,14 @@ TabStrip* TabDragController::GetTargetTabStripForPoint( } gfx::NativeWindow local_window = GetLocalProcessWindow(point_in_screen, is_dragging_window_); - TabStrip* tab_strip = GetTabStripForWindow(local_window); - if (tab_strip && DoesTabStripContain(tab_strip, point_in_screen)) - return tab_strip; + // Do not allow dragging into a window with a modal dialog, it causes a weird + // behavior. See crbug.com/336691 + if (!wm::GetModalTransient(local_window)) { + TabStrip* tab_strip = GetTabStripForWindow(local_window); + if (tab_strip && DoesTabStripContain(tab_strip, point_in_screen)) + return tab_strip; + } + return is_dragging_window_ ? attached_tabstrip_ : NULL; } |