How to temporarily hide a window



 Hello,

 See http://bugs.kde.org/show_bug.cgi?id=59572. Basically, the problem is that 
there's a window, which has 'always on top' set by the user (from KWin's 
window operations menu), and this window gets hidden (=unmapped) temporarily 
in order to take screenshot of the whole desktop, and then it gets shown 
again. Now, since the spec suggests removing some properties because it 
"helps legacy applications which want to reuse withdrawn windows" (and this 
doesn't really apply only to legacy apps), the window has no longer the 
_NET_WM_STATE_ABOVE flag after being shown again. The same problem is e.g. 
with KSystemTray (when showing/hiding the mainwindow when clicking on the 
tray icon), and even though I can't think of anything specific, I think there 
are more cases like this.

 Does somebody have an idea how to temporarily hide a window without it having 
all the state etc. properties reset? I can think of few solutions, but none 
of them is very good:
- have the app remember the state. This can't really work, because the app 
doesn't who which properties to save.
- minimize the window. This doesn't help much either, because it leaves the 
taskbar entry.
- set SkipTaskbar and minimize the window. This leads to somewhat stupid API, 
both because there are two ways of hiding a window, and because one has to 
remember the SkipTaskbar state for the restore operation.
- it could use _NET_WM_STATE_HIDDEN. This could IMHO actually work, if the 
spec didn't suggest that this is WM-only internal flag, and the clients 
shouldn't touch it.

 Any idea how to solve this?

-- 
Lubos Lunak
KDE developer
---------------------------------------------------------------------
SuSE CR, s.r.o.  e-mail: l lunak suse cz , l lunak kde org
Drahobejlova 27  tel: +420 2 9654 2373
190 00 Praha 9   fax: +420 2 9654 2374
Czech Republic   http://www.suse.cz/




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]