multi-display dragging not working with Mash |
|||
Issue description1. 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.
,
Oct 10
,
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
,
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
,
Oct 26
I believe this is done. |
|||
►
Sign in to add a comment |
|||
Comment 1 by mukai@chromium.org
, Oct 5