New issue
Advanced search Search tips

Issue 879359 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 7
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug


Show other hotlists

Hotlists containing this issue:
Gesture-polish


Sign in to add a comment

Window with transient child window resize/transform problem

Project Member Reported by x...@chromium.org, Aug 30

Issue description

Chrome Version: 70.0.3508.0
OS: Chrome

What steps will reproduce the problem?
(1) Enter tablet mode. Open a browser window with a transient child (e.g. the click-to-restore dialog). 
(2) Drag on the non-tabstrip caption area of the browser window to snap to left
(3) Drag on the non-tabstrip caption area of the snapped browser window for a small distance to maximize it again 

What is the expected result?
The window should be maximized with its transient child be placed in the right position

What happens instead?
The transient child is not place in the right position, see attached screenshot


 
Project Member

Comment 1 by bugdroid1@chromium.org, Sep 7

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/219bf06eadcfe2a882c6c6c16ef9f65d72339298

commit 219bf06eadcfe2a882c6c6c16ef9f65d72339298
Author: Xiaoqian Dai <xdai@chromium.org>
Date: Fri Sep 07 16:55:09 2018

Restore a dragged window's transform to identity before changing its bounds.

We need to restore a dragged window's transform back to identify first and
then change its bounds, otherwise, if the window has a bubble, the bubble
won't get the correct bounds, as seen in the bug. The reason is
BubbleDialogDelegateView::SizeToContents() is only called to relayout the
bubble when its anchor widget window's bounds changed, and if the anchor
widget window has a non-identity transform in place when the function is
called, the bubble can't be relayout'ed correctly as GetAnchorBoundsInScreen()
takes the tranform into consideration.

To fix this, we always restore the transform first and then change its bounds.
We'll investigate if there is better way to fix it.

Bug:  879359 
Change-Id: I5dd36082eb4fff8fdcdbde21e22b12393663df76
Reviewed-on: https://chromium-review.googlesource.com/1197788
Commit-Queue: Xiaoqian Dai <xdai@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589552}
[modify] https://crrev.com/219bf06eadcfe2a882c6c6c16ef9f65d72339298/ash/wm/overview/overview_utils.cc
[modify] https://crrev.com/219bf06eadcfe2a882c6c6c16ef9f65d72339298/ash/wm/overview/overview_utils.h
[modify] https://crrev.com/219bf06eadcfe2a882c6c6c16ef9f65d72339298/ash/wm/overview/scoped_transform_overview_window.cc
[modify] https://crrev.com/219bf06eadcfe2a882c6c6c16ef9f65d72339298/ash/wm/overview/scoped_transform_overview_window.h
[modify] https://crrev.com/219bf06eadcfe2a882c6c6c16ef9f65d72339298/ash/wm/overview/window_selector_item.cc
[modify] https://crrev.com/219bf06eadcfe2a882c6c6c16ef9f65d72339298/ash/wm/splitview/split_view_controller.cc
[modify] https://crrev.com/219bf06eadcfe2a882c6c6c16ef9f65d72339298/ash/wm/splitview/split_view_controller.h
[modify] https://crrev.com/219bf06eadcfe2a882c6c6c16ef9f65d72339298/ash/wm/splitview/split_view_utils.cc
[modify] https://crrev.com/219bf06eadcfe2a882c6c6c16ef9f65d72339298/ash/wm/splitview/split_view_utils.h
[modify] https://crrev.com/219bf06eadcfe2a882c6c6c16ef9f65d72339298/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc

Status: Fixed (was: Assigned)

Sign in to add a comment