[compiz] setWindowState(), how use it?

David Reveman davidr at novell.com
Mon Dec 11 20:53:01 PST 2006


On Sun, 2006-12-10 at 02:03 +0100, Bellegarde Cedric wrote:
> I'm trying to add some options in state plugin:
> -skipTaskBar
> -skipPager
> -above
> -below
> 
> I use setWindowState() to do this but:
> - It currently only works for skipTaskBar && skipPager
> - For above and below, it works but only for newly created windows
> 
> here the code:
> 
>     if (skipTaskBar != -1)
>         windowState |= CompWindowStateSkipTaskbarMask;
> 
>     if (skipPager != -1)
>         windowState |= CompWindowStateSkipPagerMask;
> 
>     if (above != -1)
>         windowState |= CompWindowStateAboveMask;
>     else if (below != -1)
> 	windowState |= CompWindowStateBelowMask;
> 
>     setWindowState(w->screen->display, 
> 	                          w->state|windowState,
> 		                  w->id);
> 
> Any idea why already existing windows don't get above/below on the fly, if i 
> use xprop, i can see _NET_WM_STATE_ABOVE but compiz seems to ignore this (if 
> i restart compiz or start kwin --replace, window is above).
> 
> Here is a solution but it use xlib code.
> http://forum.go-compiz.org/viewtopic.php?t=141&start=15

The only way to change window state currently is by sending client
messages. setWindowState is only for internal use to update the state
property and can't be used to change window state.

-David



More information about the compiz mailing list