Bug 340594 - tabbox should not initially adjust the focus chain, if the currently active client is not in the focus chain
Summary: tabbox should not initially adjust the focus chain, if the currently active c...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Unclassified
Component: tabbox (show other bugs)
Version: unspecified
Platform: Mint (Ubuntu based) Linux
: NOR normal (vote)
Target Milestone: 5
Assignee: KWin default assignee
URL: https://git.reviewboard.kde.org/r/121...
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-03 09:09 UTC by Cade
Modified: 2014-11-27 19:28 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
thomas.luebking: ReviewRequest+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Cade 2014-11-03 09:09:13 UTC
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.
Comment 1 Thomas Lübking 2014-11-03 13:37:55 UTC
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
Comment 2 Thomas Lübking 2014-11-27 19:28:01 UTC
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