Michael Brade asked for elaboration, just briefly...
Briefly :) ? Hahahahaha. Grep workspace.cpp
for '::allowCl'. Yes, I mean that huge comment (I had to write it down before really started writing the code).
But I can try: Just like the old implementation, it's basically comparing the timestamp of last user action for a window with the latest timestamp of any user action, and if the window's one is older, it means you did something different after the action that caused the window to appear (or that lead to the window requesting activation). Similarly, if some app shows a window by itself (e.g. QTimer, ICQ message), it will have old timestamp. The comment is so long because there are several ways leading to a window being created, sometimes finding out the user timestamp is not so easy (e.g. when starting KControl from K-Menu while there's kcontrol instance already running, the timestamp of this user action has to be used when activating the already visible window). The old implementation used a rather simple hack to get the timestamp for new windows (it worked surprisingly well for newly started apps, though).
You can try it out yourself BTW:http://lists.kde.org/?l=kwin&m=105396408403593&w=2
. Ideally, no inactive window should interrupt you while you're working (that is, unless I forgot some special case, or did some mistake). Testers are welcome :).