New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 631136 link

Starred by 6 users

Issue metadata

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

Blocking:
issue 642894



Sign in to add a comment

Extended desktop mode for Exosphere with non-ARC clients

Project Member Reported by domlasko...@chromium.org, Jul 25 2016

Issue description

Exosphere with non-ARC clients is functional in extended desktop mode, but has a few issues:

1. DCHECK due to duplicate observers in ARC IME service
2. Resized windows show up on the primary display
3. Popup windows show up on the primary display
4. New windows show up on the primary display
5. Invisible cursor on secondary displays

This is a prerequisite for extended desktop mode in ARC.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 26 2016

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

commit 51b855c765c5da89dad5ee3af9b0e138f7b75d08
Author: domlaskowski <domlaskowski@chromium.org>
Date: Tue Jul 26 00:14:31 2016

exo: Convert widget bounds to screen coordinates

Since widget bounds were updated using coordinates relative to the root
window, windows on secondary displays would snap back to the primary
display after resizing.

BUG= 631136 
TEST=Drag weston-terminal to secondary display and resize.
TEST=ARC apps can still be dragged and maximized.

Review-Url: https://codereview.chromium.org/2176293002
Cr-Commit-Position: refs/heads/master@{#407646}

[modify] https://crrev.com/51b855c765c5da89dad5ee3af9b0e138f7b75d08/components/exo/shell_surface.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Jul 26 2016

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

commit 9e7453454c6698e8a407d48ff041a3c9b79c8544
Author: domlaskowski <domlaskowski@chromium.org>
Date: Tue Jul 26 17:34:28 2016

exo: Fix invisible cursor on secondary displays

The cursor location in display coordinates was being compared with and
updated from the mouse location in screen coordinates.

BUG= 631136 
TEST=Pointer is visible in weston-terminal on secondary display.
TEST=Pointer is still visible in ARC.

Review-Url: https://codereview.chromium.org/2177423002
Cr-Commit-Position: refs/heads/master@{#407844}

[modify] https://crrev.com/9e7453454c6698e8a407d48ff041a3c9b79c8544/components/exo/pointer.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 26 2016

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

commit 8b69fb4d6a4ced6df9c967a092a4f5b575333374
Author: domlaskowski <domlaskowski@chromium.org>
Date: Tue Jul 26 20:30:10 2016

ARC: Avoid duplicate observers in IME service

Root windows share the same FocusClient in Ash, but the ARC IME service
registers one FocusClient observer per root window.

BUG= 631136 
TEST=Dragging an Exo window to a secondary display does not DCHECK.
TEST=Typing into ARC apps using a French keyboard still works.

Review-Url: https://codereview.chromium.org/2179903002
Cr-Commit-Position: refs/heads/master@{#407900}

[modify] https://crrev.com/8b69fb4d6a4ced6df9c967a092a4f5b575333374/components/arc/ime/arc_ime_service.cc
[modify] https://crrev.com/8b69fb4d6a4ced6df9c967a092a4f5b575333374/components/arc/ime/arc_ime_service.h

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 29 2016

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

commit 9ae6cfed8f37fe4438e00126995dc863c03dd294
Author: domlaskowski <domlaskowski@chromium.org>
Date: Fri Jul 29 00:46:33 2016

exo: Convert initial bounds to screen coordinates

Since the initial bounds of a ShellSurface were relative to the root
window, pop-up windows (e.g. context menus in weston-terminal) whose
parents are on a secondary display would appear on the primary display.

BUG= 631136 
TEST=Drag weston-terminal to secondary display and right-click.
TEST=ARC apps can still be dragged and maximized.

Review-Url: https://codereview.chromium.org/2175373003
Cr-Commit-Position: refs/heads/master@{#408535}

[modify] https://crrev.com/9ae6cfed8f37fe4438e00126995dc863c03dd294/components/exo/display.cc
[modify] https://crrev.com/9ae6cfed8f37fe4438e00126995dc863c03dd294/components/exo/shell_surface.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 1 2016

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

commit 8effe9a13cf037ffc7ededa776607665340e1d83
Author: domlaskowski <domlaskowski@chromium.org>
Date: Mon Aug 01 20:25:32 2016

exo: Set widget parent to target root window

Windows created by the active window on a secondary display would appear
on the primary display instead of the same display.

BUG= 631136 
TEST=weston-terminal: Right-click > Open Terminal on secondary display.
TEST=Opening windows in ARC apps still works.

Review-Url: https://codereview.chromium.org/2179243002
Cr-Commit-Position: refs/heads/master@{#409042}

[modify] https://crrev.com/8effe9a13cf037ffc7ededa776607665340e1d83/components/exo/shell_surface.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 3 2016

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

commit ee97bde5e7f990c2714e3486b60b9a62c1871c92
Author: domlaskowski <domlaskowski@chromium.org>
Date: Wed Aug 03 00:28:51 2016

Revert of exo: Convert initial bounds to screen coordinates (patchset #1 id:1 of https://codereview.chromium.org/2175373003/ )

Reason for revert:
Breaks overview mode for ARC windows.

Original issue's description:
> exo: Convert initial bounds to screen coordinates
>
> Since the initial bounds of a ShellSurface were relative to the root
> window, pop-up windows (e.g. context menus in weston-terminal) whose
> parents are on a secondary display would appear on the primary display.
>
> BUG= 631136 
> TEST=Drag weston-terminal to secondary display and right-click.
> TEST=ARC apps can still be dragged and maximized.
>
> Committed: https://crrev.com/9ae6cfed8f37fe4438e00126995dc863c03dd294
> Cr-Commit-Position: refs/heads/master@{#408535}

TBR=reveman@chromium.org,oshima@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 631136 

Review-Url: https://codereview.chromium.org/2202713005
Cr-Commit-Position: refs/heads/master@{#409399}

[modify] https://crrev.com/ee97bde5e7f990c2714e3486b60b9a62c1871c92/components/exo/display.cc
[modify] https://crrev.com/ee97bde5e7f990c2714e3486b60b9a62c1871c92/components/exo/shell_surface.cc

 Issue 639951  has been merged into this issue.
Blocking: 642894
Project Member

Comment 9 by bugdroid1@chromium.org, Nov 3 2016

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

commit 24078fe2e32b15d2a2aacc9785f92d2c5da0d3c4
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Nov 03 23:11:59 2016

exo: Fix widget positioning for pop-ups

Since the initial bounds of a ShellSurface were relative to the root
window, pop-up windows (e.g. context menus in weston-terminal) whose
parents are on a secondary display would appear on the primary display.
In addition, the initial bounds were not taken into consideration when
updating the widget bounds.

BUG= 631136 
TEST=Drag weston-terminal to secondary display and right-click.
TEST=No regression for ARC windows.

Review-Url: https://codereview.chromium.org/2467173002
Cr-Commit-Position: refs/heads/master@{#429720}

[modify] https://crrev.com/24078fe2e32b15d2a2aacc9785f92d2c5da0d3c4/components/exo/display.cc
[modify] https://crrev.com/24078fe2e32b15d2a2aacc9785f92d2c5da0d3c4/components/exo/shell_surface.cc
[modify] https://crrev.com/24078fe2e32b15d2a2aacc9785f92d2c5da0d3c4/components/exo/shell_surface_unittest.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 1 2017

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

commit ba20af04ad131e2fc7b8fd4142cffd7461057d5b
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jun 01 18:12:15 2017

exo: Fix multi-display hardware cursor

This CL fixes crashes in extended desktop mode caused by incorrect
parenting of the cursor surface, as well as cases where the cursor
was captured with an incorrect transform or hotspot:

  1) The mouse enters a display with a different DSF or UI scale.
  2) The internal display is not the primary display.
  3) The display is rotated.

It also adds a TODO for an accessibility regression.

BUG= 631136 
BUG= 642894 
TEST=caroline: Cursor parenting and scaling is correct for each display.
TEST=caroline: Cursor on rotated displays has correct orientation.

Review-Url: https://codereview.chromium.org/2780623002
Cr-Commit-Position: refs/heads/master@{#476353}

[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge_unittest.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/pointer.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/pointer.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/shell_surface.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper_ash.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper_ash.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper_mus.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper_mus.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/aura/client/cursor_client.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/aura/client/cursor_client_observer.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/aura/test/test_cursor_client.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/aura/test/test_cursor_client.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/wm/core/cursor_manager.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/wm/core/cursor_manager.h

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 1 2017

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

commit fa6afade49688205eb70ba3329a23c91080cf53a
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jun 01 19:00:35 2017

exo: Fix cursor scale when crossing displays

While dragging, the cursor was locked, so CursorClient::SetCursor calls
were collapsed into a single call at the end of the drag. When crossing
displays with different densities, the cursor scale was incorrect until
the window was dropped. This CL removes cursor locking to prevent the
OnCursorDisplayChanged update from being postponed.

BUG= 631136 
BUG= 642894 
TEST=caroline: Cursor scale is correct while dragging across displays.

Review-Url: https://codereview.chromium.org/2812663002
Cr-Commit-Position: refs/heads/master@{#476375}

[modify] https://crrev.com/fa6afade49688205eb70ba3329a23c91080cf53a/components/exo/shell_surface.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 8 2017

Labels: merge-merged-3112
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e0a90e7641fe7a24179747861292ef199dae85e5

commit e0a90e7641fe7a24179747861292ef199dae85e5
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jun 08 20:38:20 2017

[M60] exo: Fix multi-display hardware cursor

This CL fixes crashes in extended desktop mode caused by incorrect
parenting of the cursor surface, as well as cases where the cursor
was captured with an incorrect transform or hotspot:

  1) The mouse enters a display with a different DSF or UI scale.
  2) The internal display is not the primary display.
  3) The display is rotated.

It also adds a TODO for an accessibility regression.

TBR=reveman@chromium.org
NOTRY=true
NOPRESUBMIT=true
BUG= 631136 
BUG= 642894 
TEST=caroline: Cursor parenting and scaling is correct for each display.
TEST=caroline: Cursor on rotated displays has correct orientation.

Review-Url: https://codereview.chromium.org/2780623002
Cr-Original-Commit-Position: refs/heads/master@{#476353}
Review-Url: https://codereview.chromium.org/2924873008
Cr-Commit-Position: refs/branch-heads/3112@{#263}
Cr-Branched-From: b6460e24cf59f429d69de255538d0fc7a425ccf9-refs/heads/master@{#474897}

[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge_unittest.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/pointer.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/pointer.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/shell_surface.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper_ash.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper_ash.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper_mus.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper_mus.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/aura/client/cursor_client.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/aura/client/cursor_client_observer.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/aura/test/test_cursor_client.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/aura/test/test_cursor_client.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/wm/core/cursor_manager.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/wm/core/cursor_manager.h

Project Member

Comment 13 by bugdroid1@chromium.org, Jun 8 2017

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

commit f9f0ccb6c9db27cea6caca0c6e7e323e0994e710
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jun 08 20:46:40 2017

[M60] exo: Fix cursor scale when crossing displays

While dragging, the cursor was locked, so CursorClient::SetCursor calls
were collapsed into a single call at the end of the drag. When crossing
displays with different densities, the cursor scale was incorrect until
the window was dropped. This CL removes cursor locking to prevent the
OnCursorDisplayChanged update from being postponed.

TBR=reveman@chromium.org
NOTRY=true
NOPRESUBMIT=true
BUG= 631136 
BUG= 642894 
TEST=caroline: Cursor scale is correct while dragging across displays.

Review-Url: https://codereview.chromium.org/2812663002
Cr-Original-Commit-Position: refs/heads/master@{#476375}
Review-Url: https://codereview.chromium.org/2931963002
Cr-Commit-Position: refs/branch-heads/3112@{#265}
Cr-Branched-From: b6460e24cf59f429d69de255538d0fc7a425ccf9-refs/heads/master@{#474897}

[modify] https://crrev.com/f9f0ccb6c9db27cea6caca0c6e7e323e0994e710/components/exo/shell_surface.cc

Status: Fixed (was: Started)

Comment 15 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Comment 16 by dchan@chromium.org, Jan 23 2018

Status: Fixed (was: Archived)

Sign in to add a comment