RE: ICCCM breakage, IconicState, and desktops



On Saturday 01 December 2001, Oliver Chapius wrote:
> On Tue, Jun 12, 2001 at 10:47:54PM -0400, Havoc Pennington wrote:
> > > John Harper <jsh eazel com> writes:
> > > > > I did actually try this way of implementng multiple desktops in > 
sawfish
> > > (to try to be ICCCM compliant). The main problem was that pagers and
> > > tasklist applets would display all off-desktop windows as iconified!
> > > (e.g. not display them at all)
> > > > > So, in the end I decided to just unmap both frame and client windows
> > > for these windows..
> > > > > That's easily solved by _NET_WM_STATE_MINIMIZED though, right?
> >

Hmm, I dont remember seeing that message and I could not find it in archives.
So I can't really see what it is referring to - implementation with virtual 
roots ? or without ? I take it that talks about no-virtual-root 
implementation, and bioth frame and window were unmapped when desktop becomes 
inactive. In which case you should se window as iconic. That effect is 
exactly why no-virtual-root-per-desktop implementation should not be used.
Still I don't quite understand what is the question.

> 
> Yes,
> This allows a window manager that does not use multiple virtual
> roots for virtual desktops to be both ICCCM and wm-spec compliant.
> I do not understand Sasha arguments against this _net_wm_state.
> Sasha, it seems that your argument is: as my wm use "virtual roots"
> for desktops we do not need this hint.
> The fact is that
> (i) IconicState does not mean iconic for the wm (ICCCM)

How is that ? IconicState is set by window manager, and application should 
track changes in WM_STATE property to know what window it should animate.
It's perfectly good and standard way used for ages to distionguish between 
two major window states used for ages, and there is no reason whatsoever to 
override it with another _NET_WM_STATE property. If somebody does indeed
go the way of virtual desktops without virtual roots, then the only choice 
they have is to be slightly ICCCM uncompliant and unmap only frame window,
but not the client. Yes its illigal according to ICCCM. But in practice you 
should not see any major problem with that, and its definately a better 
solution then adding proposed property to _NET_WM_STATE. One ought to use 
virtual roots when implementing virtual desktops. 

The only reason _NET_WM_STATE is there is only to compliment the 3 ICCCM 
state, and allow for things like maximized and shaded, which is not covered 
by ICCCM. But those states merely go as finer grain of NormalState. Non of it 
overrides WM_STATE. And that is good, and that is how it should stay IMO. 
Remeber - we don't override ICCCM - we complimnent it.

> (ii) the only way a pager/taskbar can know if a window is iconified
> is to use the window State.

Yep. tracking WM_STATE property is a good way to go.


> So, IMHO the wm-spec intentionally break the ICCCM.
> I currently implement the wm-spec inside fvwm (I've already
> implemented it in an external way) and some developers do
> not understand this (of course this is not an argument).

do not understand what ?

> 
> Regards, Olivier

Cheers 
Sasha Vasko




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