Commit 3b5f8efa authored by Avery Musbach's avatar Avery Musbach Committed by Commit Bot

split view: Prevent crash in SplitViewDivider::OnWindowDragStarted

Bug: 1008408
Change-Id: I1998eb54d4645741dd1f311147a0cacdb1b136c1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1829540
Commit-Queue: Avery Musbach <amusbach@chromium.org>
Reviewed-by: default avatarXiaoqian Dai <xdai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#700826}
parent b7d5be63
...@@ -1299,9 +1299,7 @@ TEST_P(OverviewSessionTest, DropTargetOnCorrectDisplayForDraggingFromTop) { ...@@ -1299,9 +1299,7 @@ TEST_P(OverviewSessionTest, DropTargetOnCorrectDisplayForDraggingFromTop) {
// Tests that dragging a window from overview creates a drop target on the same // Tests that dragging a window from overview creates a drop target on the same
// display. // display.
// Disabled, test is flaky: crbug.com/1008408 TEST_P(OverviewSessionTest, DropTargetOnCorrectDisplayForDraggingFromOverview) {
TEST_P(OverviewSessionTest,
DISABLED_DropTargetOnCorrectDisplayForDraggingFromOverview) {
UpdateDisplay("600x600,600x600"); UpdateDisplay("600x600,600x600");
EnterTabletMode(); EnterTabletMode();
// DisplayConfigurationObserver enables mirror mode when tablet mode is // DisplayConfigurationObserver enables mirror mode when tablet mode is
......
...@@ -343,9 +343,12 @@ void SplitViewDivider::RemoveObservedWindow(aura::Window* window) { ...@@ -343,9 +343,12 @@ void SplitViewDivider::RemoveObservedWindow(aura::Window* window) {
void SplitViewDivider::OnWindowDragStarted(aura::Window* dragged_window) { void SplitViewDivider::OnWindowDragStarted(aura::Window* dragged_window) {
is_dragging_window_ = true; is_dragging_window_ = true;
SetAlwaysOnTop(false); SetAlwaysOnTop(false);
// Make sure |divider_widget_| is placed below the dragged window.
dragged_window->parent()->StackChildBelow(divider_widget_->GetNativeWindow(), aura::Window* divider_window = divider_widget_->GetNativeWindow();
dragged_window); // If |divider_window| and |dragged_window| are siblings, then make sure that
// |divider_window| is stacked below |dragged_window|.
if (divider_window->parent() == dragged_window->parent())
divider_window->parent()->StackChildBelow(divider_window, dragged_window);
} }
void SplitViewDivider::OnWindowDragEnded() { void SplitViewDivider::OnWindowDragEnded() {
......
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