Adding/Removing an external monitor causes maximized windows to move to another workspace
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz |
Fix Released
|
Medium
|
Christopher Townsend | ||
Compiz Core |
Fix Released
|
Medium
|
Christopher Townsend | ||
compiz (Ubuntu) |
Fix Released
|
Medium
|
Christopher Townsend | ||
Precise |
Fix Released
|
Medium
|
Bartosz Kosiorek |
Bug Description
[Impact]
If I plug in external monitor, move a window to it, maximize window and remove external monitor, window is moved to the same workspace primary screen - this is correct behavior, but when I un-maximize it - window moves to different workspace. This most likely is because original window positions are not updated after removing the monitor and un-maximize still uses those old values to move the window to supposedly original position.
Another use case is when window movement is somewhat wrong - external monitor plugged in, window is maximized on primary screen, move focus to different workspace, unplug the monitor, move back to the workspace when we have fullscreen window, unmaximize it - window un-maximizes not to original position, it's moved away by the same mount of pixels as external monitor width is.
I expect that window stays on the same workspace - once it's on it it should not move unless I do that manually, also I expect that un-maximizing moves window to original position, not different.
This is continuation of bug https:/
P.S. Most likely bug can be fixed quite easy as behavior is similar to bug I mentioned, hopefully this can be included in the same SRU.
thanks in advance
Eduards
[Test Case]
** Test Case 1
1. plug in external monitor and move a windows to it
2. maximize window
3. unplug external monitor
4. window moves to the primary display of the same workspace (this is correct)
5. un-maximize window
6. window un-maximizes to a different workspace (this is incorrect)
** Test Case 2
1. plug in external monitor
2. maximize window on primary (laptop display)
3. change to a different workspace
4. unplug external monitor
5. return to workspace with maximized window
6. un-maximize window
7. window un-maximizes to wrong position. instead of the original position it is shifted over by the same number of pixels as the width of the external monitor (also incorrect)
[Other information]
The bug fix also address bug LP: #763148 on precise.
[Regression]
None determined && expected.
Related branches
- Brandon Schaefer (community): Approve
- PS Jenkins bot (community): Needs Fixing (continuous-integration)
-
Diff: 111 lines (+50/-0)4 files modifiedinclude/core/window.h (+2/-0)
src/privatewindow.h (+2/-0)
src/screen.cpp (+13/-0)
src/window.cpp (+33/-0)
- Brandon Schaefer (community): Approve
-
Diff: 112 lines (+51/-0)4 files modifiedinclude/core/window.h (+2/-0)
src/privatewindow.h (+2/-0)
src/screen.cpp (+14/-0)
src/window.cpp (+33/-0)
Changed in compiz: | |
status: | New → Triaged |
Changed in compiz (Ubuntu): | |
status: | New → Triaged |
Changed in compiz: | |
importance: | Undecided → Medium |
Changed in compiz (Ubuntu): | |
importance: | Undecided → Medium |
Changed in compiz: | |
milestone: | none → 0.9.10.3 |
Changed in compiz: | |
assignee: | nobody → Christopher Townsend (townsend) |
status: | Triaged → In Progress |
Changed in compiz: | |
status: | In Progress → Fix Committed |
Changed in compiz (Ubuntu Precise): | |
status: | New → Triaged |
importance: | Undecided → Critical |
importance: | Critical → Medium |
description: | updated |
description: | updated |
Changed in compiz-core: | |
milestone: | none → 0.9.7.14 |
status: | New → Confirmed |
importance: | Undecided → Medium |
assignee: | nobody → Christopher Townsend (townsend) |
status: | Confirmed → In Progress |
Changed in compiz-core: | |
status: | In Progress → Fix Committed |
tags: | added: cts |
Changed in compiz: | |
status: | Fix Committed → Fix Released |
tags: | added: rls-w-incoming |
Changed in compiz-core: | |
status: | Fix Committed → Fix Released |
I guess the hot plug events for adding and removing external monitors are a really complicated issue. In my case, I have two monitors connected to my computer. Turning them off causes a hot plug event saying that first one and then the other have gone away. Turning them on again causes windows to turn up in different places as they were before, which is of course not the expected behavior.
Moving the window when un-maximazing is obviously wrong, but my point is that the solution as to what to do when monitors appear or go away is not trivial at all.