Fullscreen windows - weird behaviour

Andreas Falkenhahn andreas at airsoftsoftwair.de
Mon May 17 05:17:07 PDT 2010


Hi,

I have the following setup:

1) An entirely black shielding window whose size is always set to the
dimensions of the current screen. _NET_WM_STATE is set to
_NET_WM_STATE_FULLSCREEN for this window. This window is used to cover the
standard parts of the desktop like the task bar at the bottom and possibly
a menu bar at the top.

2) On top of this shielding window is my main window which is usually a
little bit smaller than the shielding window. The main window is centered
above the shielding window. To make sure that the shielding window never
gets in front of my main window, I'm also setting the transient for hint
like this:

XSetTransientForHint(display, main_window, shielding_window);

This is all working fine except in one case: When I change the screen mode
using XF86VidModeSwitchToMode(). In that case, the taskbar suddenly pops
up when clicking a little bit at the bottom area of the shielding window.
This is very weird because the area is clearly occupied by my shielding
window and mouse clicks shouldn't be passed through to the any other
window!? How does it come that the task bar suddenly gets notified
although I'm clearly clicking on the shielding window?

Is there any way to change this behaviour? I also tried to do an
XGrabPointer() on my main window but this still doesn't prevent the task
bar from popping up when clicking in the bottom area of the shielding
window! Why is that? And why is it only when I change the screen mode
using XF86VidModeSwitchToMode()? If I don't change the screen mode, there
is no way to bring up the task bar by clicking on the shielding window.
But as soon as I change the screen mode, the task bar can be accessed by
clicking several times on the bottom of the shielding window! Anybody got
a clue what's going on there?

Thanks,

Andreas



More information about the xorg mailing list