summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-11 23:39:16 +0000
committermukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-11 23:39:16 +0000
commit04ec34734c2d146576a143bf4fef5ffb710fcf07 (patch)
treebdb54b90426c2d87f370edd626ebd640a15b2175
parent336990645426e19827ce02109768ef59bbfc9615 (diff)
downloadchromium_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.cc12
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;
}