New issue
Advanced search Search tips

Issue 659925 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Feb 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

Windows moved form 2nd monitor to 1st and mostly off screen after sleep and un-maximising

Reported by davidmax...@gmail.com, Oct 27 2016

Issue description

Google Chrome	53.0.2785.154 (Official Build) (64-bit)
Revision	68e8c5d67607d49682565ae2dbb6e1b2103553bc-refs/branch-heads/2785@{#944}
Platform	8530.96.0 (Official Build) stable-channel link
Blink	537.36 (@68e8c5d67607d49682565ae2dbb6e1b2103553bc)
JavaScript	V8 5.3.332.47
Flash	23.0.0.162-r1
User Agent	Mozilla/5.0 (X11; CrOS x86_64 8530.96.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.154 Safari/537.36

Chrome OS Platform: Pixel 
Network info: N/A

Steps To Reproduce:
It is irritating to keep having to close and re-open the chromebook just to get windows to be placed on the screen.

1. connect a tv via the mini-dp (using pixel),
2. open windows on both main screen and tv, fullscreen
3. close laptop and turn off TV (eg, to go to bed/etc)
4. open laptop and turn on TV (eg, the next morning)

at this point, all the windows are placed on the laptop screen and nothing on the TV - it should be that they are placed as before.

in order to move a window from laptop to TV :

5. un-maximize the window

at this point, the window is placed mostly off the left edge of the laptop screen so that you can only see the right hand part of it (perhaps it is the right side because I my TV is position on the left)

it is impossible to move the window

in order to get the window back on the screen :

6. close the laptop again
7. open the laptop again

now the window is fully on the laptop and I can manually move it back to the TV, where it should have been in the first place.

If you have multiple windows on the TV, then you have to do this for each of them. It's a right royal pain in the artillery.

Please consider fixing this use-case.

How frequently does this problem reproduce? Always

 

Comment 1 by vsu...@chromium.org, Jan 26 2017

Components: UI>Shell>WindowManager
Owner: osh...@chromium.org
Status: Assigned (was: Unconfirmed)
@oshima could you take a look at this?

Comment 3 by osh...@chromium.org, Feb 10 2017

This is most likely because the device went to docked mode, in which case, windows are moved to the internal (laptop) display, in which case, WAI.

unmaximizing tries to restore the bounds to the original position, and
chrome is just trying to keep it visible. 
Obviously, WorksAsIntended is not correct for the overall behaviour (rather that just a 'docking' part), or the design is flawed, since it is nonsense behaviour from the users' point of view.

I understand that there are technically two steps here :

1. laptop put into docking mode and, for some reason attempts to move the windows to the laptop display; and,
2. when unmaximising, chrome attempts to restore to the original position.

My questions would be :

1. Why does it attempt to move it to the laptop display? Perhaps that is ok if the display is unplugged, but that isn't happening - the laptop is going to sleep before that happens (I think).
2. Under no circumstances should chrome move windows to non-visible/partially visible positions. Why would it not move them back onto the external screen (if still connected)? If that is somehow impossible, why not simply *not* try to move them and position them on the visible part of the screen.

Of course, I should note the 'background' complaint that it is impossible to move windows while they're maximised, meaning that, to move a window from the laptop screen to the TV, I need to: 1. unmaximise, 2. drag window, 3. maximise. This is quite different to other OSes I've used which I can just drag the top bar of a maximised windows down, then drag across to the other display, and up to the top to maximise it; all one fluid motion.

Comment 5 by osh...@chromium.org, Feb 14 2017

I didn't mean this bug itself is WAI. Sorry if it sounded that way.

1) No it doesn't go to sleep if you have external display connected, and Window has to move to the
   visible display, otherwise you can't use it. This is WAI.

2) It just restores to where it was. Since chrome doesn't know exactly when it
was saved, you can't really say it shouldn't move or not. (You might really have moved there,
then changed the display resolution, for example)

I do (did) have a plan to improve this, but never implemented due to the time/resource constraints.
I'll see if I can spare some time to work on this.
Excellent, thanks.
Project Member

Comment 7 by bugdroid1@chromium.org, Feb 22 2017

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

commit 92224ac504e06d16d48ceeb63eb3160519629ffc
Author: oshima <oshima@chromium.org>
Date: Wed Feb 22 06:27:43 2017

Clamp the restore bounds to new workspace when a display is disconnected.

Reparent does adjust the bounds, but when it's partially offline, i can
push the window further to the different direction if the destination
display is larger.

BUG= 659925 
TEST=Updated the test to cover the scenario.

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

[modify] https://crrev.com/92224ac504e06d16d48ceeb63eb3160519629ffc/ash/root_window_controller.cc
[modify] https://crrev.com/92224ac504e06d16d48ceeb63eb3160519629ffc/ash/root_window_controller_unittest.cc

Comment 8 by osh...@chromium.org, Feb 22 2017

Status: Fixed (was: Assigned)
The window will be restored within the visible workspace now. 

Comment 9 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59
Status: Verified (was: Fixed)

Sign in to add a comment