Bug 186964 - kwin does not honor focus-on-map == false
Summary: kwin does not honor focus-on-map == false
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-03-12 14:58 UTC by Ashutosh Sharma
Modified: 2012-03-15 01:25 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ashutosh Sharma 2009-03-12 14:58:30 UTC
Version:            (using KDE 4.1.2)
Compiler:          gcc 4.1.0 
OS:                Linux
Installed from:    Ubuntu Packages

On setting the _NET_WM_USER_TIME property for a window to 0 (to achieve the
result that the window does not steal focus when it is mapped - e.g. via
gdk_window_set_focus_on_map(window, FALSE)), the behavior is incorrect with
compiz:

In addition to the window not stealing focus, the window is also drawn behind
existing windows, and so the newly created window is not visible. If such a
window has been set to not show up on the taskbar and in the pager, there's no
indication that a new window has been created at all.

compiz had the same behavior, but has now been fixed (http://bugs.opencompositing.org/show_bug.cgi?id=1117)
Comment 1 Lubos Lunak 2009-04-28 18:38:31 UTC
That is a feature. Why should this be needed?
Comment 2 Ashutosh Sharma 2009-04-30 15:02:16 UTC
This is needed for creation of small notification windows, for instance, such that they do not steal keyboard-focus.

The Extended Window Manager Hints spec (http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2552314) mentions that:

_NET_WM_USER_TIME: The special value of zero on a newly mapped window can be used to request that the window not be initially focused when it is mapped.
Comment 3 Thomas Lübking 2012-03-15 01:25:24 UTC
activation.cpp:559
    if (time == 0)   // explicitly asked not to get focus
        return false;