Compiz switcher Alt-Tab order is not predictable - should maintain LIFO ordering in application switcher
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Unity |
Fix Released
|
Medium
|
Sam Spilsbury | ||
compiz (Ubuntu) |
Fix Released
|
High
|
Jason Smith | ||
Natty |
Fix Released
|
High
|
Jason Smith | ||
unity (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Natty |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: compiz-
In compiz-fusion, the various Switchers have a strange way of keeping track of windows. Let's say I have ten windows open, numbered in order of which I've used most recently (1 being most recent).
Application switcher allows me to switch between the 2 most recently used windows (1 to 2 and back to 1) by simply pressing alt-tab and alt-tab again. After switching, it leaves all windows where they were except the one I've selected. To go to the one I used before these two, I press alt-tab-tab (1-2-3).
Shift switcher does something arbitrary that I haven't figured out yet. In most cases if I just do hyper-tab, it goes 1-2. But if I cycle through more than that, it goes 1-2-8 or 1-2-4. Then what was 1 may get pushed way to the back behind 10 and 7. Most annoying of all, it doesn't just bring the window to the front temporarily as application switcher does, but it permanently shuffles the windows on your desktop, so everything is out of order, especially if I cycle through more than one window. This makes it impossible to quickly switch between two or three windows I'm working actively with, instead bringing to the front things I haven't worked with in hours. Why not just use the same algorithm application switcher uses, keeping track of which windows have been used most recently and leaving all windows except the selected one where they were?
Changed in compiz-fusion-plugins-main: | |
importance: | Undecided → Low |
status: | New → Confirmed |
affects: | compiz-fusion-plugins-main (Ubuntu) → compiz (Ubuntu) |
Changed in compiz (Ubuntu): | |
importance: | Low → Wishlist |
status: | Confirmed → Triaged |
description: | updated |
tags: | added: compiz-0.9 unity |
tags: | added: dids-top-ten |
Changed in compiz (Ubuntu Natty): | |
status: | Triaged → Fix Committed |
assignee: | nobody → Jason Smith (jassmith) |
Changed in unity: | |
status: | Fix Committed → Fix Released |
Changed in unity: | |
milestone: | 3.8.2 → 3.8.4 |
status: | Fix Released → Fix Committed |
Changed in unity: | |
status: | Fix Committed → Fix Released |
I wholeheartedly agree with your report, joehill. The <Alt>+<Tab> behavior of changing windows within the MRU list of apps/windows should be expected. I experience this bug myself. I agree it makes Shift Switcher effectively unusable. Two comments:
1 - I think sharing an "algorithm" with the other application/window switching mechanisms makes sense. But I believe the actual implementation of tracking or reporting the z-order should also be shared, factored out of _all_ of the mechanisms. Maybe each window manager takes care of this and provides it as a service to apps within? That way this wouldn't even be a Compiz plugin task (the plugin would do the work of graphics, but would get/set the ordering from a shared service).
2 - Complicating the above comment (1), I believe Compiz's default plugin for "Application Switcher" and "Shift Switcher" allows the user to configure which sets of windows should be included in the switching list. Unfortunately, the implementation of this in Shift Switcher seems different from Application Switcher (which seems to be working correctly in this respect) and Shift Switcher is not behaving properly. This configurability, which I'm not sure if the older (non Compiz) Alt-Tab switching allows, means that the lists may be different across app-switching mechanisms, but the MRU and order-retention *should* be the same. Perhaps a shared implementation could be upgraded to support the Compiz plugins, but with default behavior doing what the old Alt-Tab switchers used to do?
FYI: I am not a Gnome, Compiz, or Linux system coder, but I have experience w/ app architecture and programming. Praise goes out to all those who actually do the fine work on Gnome, Compiz, Compiz plugins, and the rest! So, please take the above ideas with plentiful grains of salt.