Removing an external monitor will move a maximized window to the current workspace
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz |
Fix Released
|
Medium
|
Christopher Townsend | ||
0.9.11 |
Fix Released
|
Medium
|
Christopher Townsend | ||
compiz (Ubuntu) |
Fix Released
|
Medium
|
Christopher Townsend | ||
Trusty |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
Many users tend to have maximized window opened on other workspaces and use an external monitor such as a projector or one connected to a laptop docking station. When removing this monitor, these maximized windows will get shuffled to the current workspace. This can be aggravating for users and is not a good user experience.
[Test case]
1. Have an external monitor.
2. Use multiple workspaces.
3. Open a window and maximize it on a workspace such as workspace 2.
4. Move to another workspace such as workspace 3.
5. Remove the external monitor.
[Regression potential]
The code here is quite fragile and can be prone to some unexpected behaviors. I took great care in trying to make sure no new regressions are caused by this fix, but there may be some corner case that is unaccounted for. Also note that there are already some broken behaviors in this area that are unfixed by this code, so keep that in mind when testing that it truly isn't a regression.
* Debdiff is found at https:/
Original Description:
Removing an external monitor when using multiple workspaces will cause maximized windows on other workspaces to move to the current workspace.
Scenario:
1. Have an external monitor.
2. Use multiple workspaces.
3. Open a window and maximize it on a workspace such as workspace 2.
4. Move to another workspace such as workspace 3.
5. Remove the external monitor.
Expected behavior:
Maximized window will remain on the workspace it was opened on.
Observed behavior:
Maximized window moves to the current workspace
Related branches
- Brandon Schaefer (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 140 lines (+35/-4)5 files modifiedplugins/place/src/place.cpp (+2/-0)
plugins/place/src/screen-size-change/include/screen-size-change.h (+2/-0)
plugins/place/src/screen-size-change/src/screen-size-change.cpp (+6/-3)
plugins/place/src/screen-size-change/tests/screen-size-change/src/test-place-screen-size-change.cpp (+7/-0)
src/window.cpp (+18/-1)
- Stephen M. Webb: Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 358 lines (+106/-19)13 files modifiedcompizconfig/gsettings/src/gsettings.c (+9/-3)
compizconfig/integration/gnome/gsettings/src/ccs_gnome_integration_gsettings_integrated_setting.c (+0/-2)
debian/changelog (+26/-0)
plugins/place/src/place.cpp (+2/-0)
plugins/place/src/screen-size-change/include/screen-size-change.h (+2/-0)
plugins/place/src/screen-size-change/src/screen-size-change.cpp (+6/-3)
plugins/place/src/screen-size-change/tests/screen-size-change/src/test-place-screen-size-change.cpp (+7/-0)
plugins/resize/src/logic/include/resize-logic.h (+3/-0)
plugins/resize/src/logic/src/resize-logic.cpp (+20/-5)
src/event.cpp (+2/-0)
src/screen.cpp (+2/-3)
src/window.cpp (+26/-3)
src/window/extents/src/windowextents.cpp (+1/-0)
Changed in compiz: | |
status: | New → Confirmed |
Changed in compiz (Ubuntu): | |
status: | New → Confirmed |
Changed in compiz: | |
importance: | Undecided → Medium |
Changed in compiz (Ubuntu): | |
importance: | Undecided → Medium |
Changed in compiz: | |
assignee: | nobody → Christopher Townsend (townsend) |
Changed in compiz (Ubuntu): | |
assignee: | nobody → Christopher Townsend (townsend) |
Changed in compiz: | |
milestone: | none → 0.9.11.0 |
Changed in compiz: | |
status: | Confirmed → In Progress |
Changed in compiz (Ubuntu): | |
status: | Confirmed → In Progress |
Changed in compiz: | |
status: | In Progress → Fix Committed |
Changed in compiz: | |
milestone: | 0.9.11.0 → 0.9.12.0 |
description: | updated |
description: | updated |
description: | updated |
tags: |
added: verification-done removed: verification-needed |
Changed in compiz (Ubuntu Trusty): | |
status: | Confirmed → Fix Committed |
Changed in compiz: | |
status: | Fix Committed → Fix Released |
This bug goes on since several years; everyone plug in an external screen (laptop at work, for example) experience that.
It was only partially resolved here https:/ /bugs.launchpad .net/compiz/ +bug/1171878 for unmaximized windows.