New issue
Advanced search Search tips

Issue 892714 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 26
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

multi-display dragging not working with Mash

Project Member Reported by mukai@chromium.org, Oct 5

Issue description

1. start chrome with multiple displays (like --ash-host-window-bounds='0+0-600x600,601+0-600x600') with --enable-features=SingleProcessMash
2. open a browser window
3. drag the window to the secondary display
4. drop the window
5. drag the window in the secondary display again

expected:
- the dragging starts from the original position

what I see:
- dragged window looks to jump to the first display and move there


By looking vlog, WindowTree::SetWindowBoundsImpl were getting the bounds in the screen coordinate during the dragging but got the display coordinate at the drop. At least we should be consistent on the coordinate.

The symptom is same between window dragging and tab dragging.
 
Summary: multi-display dragging not working with Mash (was: multi-window dragging not working with Mash)
silly typo on the title...
Status: Started (was: Assigned)
Project Member

Comment 3 by bugdroid1@chromium.org, Oct 11

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

commit a9689529f5d42ab69fb574428ae0fd2ffb2a7d87
Author: Jun Mukai <mukai@chromium.org>
Date: Thu Oct 11 23:01:24 2018

Fix the cursor point for window move

WindowServiceDelegateImpl takes the cursor location in screen
coordinate and passes it directly to WmToplevelWindowEventHandler,
however WmToplevelWindowEventHandler expects the location in
the parent window's coordinate. Without the coordinate conversion
the dragging will be handled incorrectly.

BUG= 892714 
TEST=the new test case covers

Change-Id: Ib8ff9bf3a6ded0e859d1a433add9d46bc52c5594
Reviewed-on: https://chromium-review.googlesource.com/c/1274527
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Jun Mukai <mukai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598996}
[modify] https://crrev.com/a9689529f5d42ab69fb574428ae0fd2ffb2a7d87/ash/ws/window_service_delegate_impl.cc
[modify] https://crrev.com/a9689529f5d42ab69fb574428ae0fd2ffb2a7d87/ash/ws/window_service_delegate_impl_unittest.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 25

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

commit b15f94ee85d24d7d6ae6cc978dae6ecffb57e8eb
Author: Jun Mukai <mukai@chromium.org>
Date: Thu Oct 25 23:53:03 2018

Use the correct bounds for TopLevel ClientRoot

When the window is moving across displays, GetBoundsInScreen()
may return an incorrect location because it hasn't moved to the
new display yet completely. This CL adds a new method to
aura::Window to indicate this intermediate status so that
ws::ClientRoot can wait slightly on sending the bounds change.

ClientRoot still emits the OnWindowBoundsChanged synchronously
upon bounds change, but it can wait for the new root window
when moving across displays.

See crrev.com/c/1284952 for my previous attempt.

BUG= 892714 
TEST=the new test case covers

Change-Id: I32fad8cc17c373705e1e27b46b4617784a15a869
Reviewed-on: https://chromium-review.googlesource.com/c/1298087
Commit-Queue: Jun Mukai <mukai@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602933}
[modify] https://crrev.com/b15f94ee85d24d7d6ae6cc978dae6ecffb57e8eb/ash/ws/window_service_delegate_impl_unittest.cc
[modify] https://crrev.com/b15f94ee85d24d7d6ae6cc978dae6ecffb57e8eb/services/ws/client_root.cc
[modify] https://crrev.com/b15f94ee85d24d7d6ae6cc978dae6ecffb57e8eb/services/ws/client_root.h
[modify] https://crrev.com/b15f94ee85d24d7d6ae6cc978dae6ecffb57e8eb/services/ws/test_change_tracker.cc
[modify] https://crrev.com/b15f94ee85d24d7d6ae6cc978dae6ecffb57e8eb/services/ws/test_change_tracker.h
[modify] https://crrev.com/b15f94ee85d24d7d6ae6cc978dae6ecffb57e8eb/services/ws/window_tree.cc
[modify] https://crrev.com/b15f94ee85d24d7d6ae6cc978dae6ecffb57e8eb/ui/aura/window.cc
[modify] https://crrev.com/b15f94ee85d24d7d6ae6cc978dae6ecffb57e8eb/ui/aura/window_observer.h

Status: Fixed (was: Started)
I believe this is done.

Sign in to add a comment