Create kwin rule with "shortcut" and "skip switcher"; press Alt-Tab. Order of windows in Alt-Tab list is invalid. Reproducible: Always Steps to Reproduce: Steps to reproduce: 1. create window rule for "konsole": "Window class": "konsole konsole"; "Window types": "Normal window"; "Skip switcher": "Yes"; "Shortcut": "Meta+`"; "Desktop": "all desktops"; 2. run "konsole" and (for example) "kwrite", "google-chrome"; 3. press Alt+Tab some times to switch to "google-chrome"; press Alt+Tab to switch to "kwrite"; now Alt-Tab order is: 1. "kwrite" (active window); 2. "google-chrome" (inactive window). "konsole" window is inactive; 4. press "Meta + `" to switch to 'konsole"; now active window is window of "konsole"; 5. press Alt+Tab one time. Actual Results: Now active window is window of "google-chrome" (previously inactive window). Actual Alt-Tab order is: 1. "google-chrome" (active window); 2. "kwrite" (inactive window). "konsole" window is inactive. Expected Results: Expected active window is window of "kwrite" (previously active window). Expected Alt-Tab order is: 1. "kwrite" (active window); 2. "google-chrome" (inactive window). "konsole" window is inactive.
That's because konsole is not in the focus chain - the present behavior (technically) actually makes sense. Activating konsole (which is not in the focus chain) does NOT impact the focus chain - kwrite is still on the top of this chain. With the next tabbox invocation, the focus chain is proceeded, moving chrome on top in this case. => the focus chain should not proceed if the currently active client is not in the focus chain
Git commit 7747a38189e75659b195150900865b693c04aab1 by Thomas Lübking. Committed on 06/11/2014 at 21:58. Pushed by luebking into branch 'master'. step into the focus chain at the beginning if the index is 0, we close the circle, but if the index is -1 (invalid) we're "somewhere" and step into the focus chain - reasonably at the beginning REVIEW: 121024 M +4 -1 focuschain.cpp http://commits.kde.org/kwin/7747a38189e75659b195150900865b693c04aab1