Fullscreen WITHOUT window decoration

Russell Shaw rjshaw at netspace.net.au
Fri Sep 8 03:26:26 PDT 2006


Philip Pflästerer wrote:
> Russell Shaw wrote:
> 
>>Philip Pflästerer wrote:
>>
>>>Hi,
>>>
>>>i want to develop a fullscreen application by using the xlib functions.
>>>Fullscreen means also NO window decoration. Normaly the window
>>>decoration is provided by the window manager. To ignore the window
>>>manager, i set the override_redirect flag to TRUE.
>>>
>>>XSetWindowAttributes setwinattr;
>>>setwinattr.override_redirect = True;
>>>
>>>XChangeWindowAttributes(display, win, valuemask, &setwinattr);
>>>
>>>This works fine so far, i have total control over the size, position an
>>>decoration (none) of the window. Unfortunatly, the window doesn't
>>>disappear when i change the focus to another window (for example by
>>>pressing ALT+TAB). It alway stays mapped on top, so I can't see the
>>>other windows or even the desktop. If I unmap the window manually,
>>>there's no way to get it back on screen because there's no entry in the
>>>task-bar. I guess these features are controlled by the window manager I
>>>set to be ignored with the code above.
>>>
>>>So my question is: How can I realize a fullscreen application WITHOUT
>>>ignoring the window manager? If that's not possible, how can I solve the
>>>problem described above?
>>
>>If you have a net-wm window manager, you could try setting
>>_NET_WM_STATE_FULLSCREEN.
> 
> Hi,
> 
> could you please explain this a little bit? I'm using KDE, I dont't
> know, if KDE has a net-wm window manager or not. Anyway, I'd like to
> implement the application independant from the window-manager (if this
> is possible).

Hi,
You may be using the KWin window manager:
   http://docs.kde.org/development/en/kdebase/faq/windowmanager.html

It is likely to understand the _NET_WM hints.

 > Isn't there a standard possibility to tell any window
> manager to make the application fullscreen, without any decorations?

_NET_WM_STATE_FULLSCREEN

Some widget tool kits like Qt might have a higher level function that
sets the same thing.

To do things at the bare Xlib level, you'll need to read the ICCCM:

   http://tronche.com/gui/x/icccm/
   http://en.wikipedia.org/wiki/Inter-Client_Communication_Conventions_Manual

and the EWMH:

   http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html

and you'll probably need an Xlib book or understand stuff like:

   http://tronche.com/gui/x/xlib/function-index.html



More information about the xorg mailing list