Re: Proposal: _NET_WM_STATE_MINIMIZED



On Thu, 2004-06-17 at 05:04, Lubos Lunak wrote:
>  I personally think the simplest solution would be dumping all this mess and 
> starting over from scratch. And the current state is a mess. The meaning of 
> STATE_MINIMIZED would be simple - a minimized window is a window explicitly 
> hidden by the user (to taskbar, desktop icon, wherever). Can anybody tell me 
> how to currently represent this state 
> (http://bugs.kde.org/show_bug.cgi?id=81271)? Because I don't know.

"window hidden by the user" is pretty much how HIDDEN is already
defined. If you define MINIMIZED that way, it's the same as HIDDEN in
the spec now.

The problem here I guess is that both KWin and metacity set HIDDEN for
shaded windows, i.e. we've decided that shading a window means the
window "would not be visible on the screen if its desktop/viewport were
active and its coordinates were within the screen bounds" in the
language of the spec. Maybe this is a questionable decision.

You have to decide what you want the "minimized" indicator in the task
bar to mean. Do you want it to mean any hiding of the window including
shaded, or do you want to have some kinds of hiding be special. If we
want some kinds to be special, we have to define those kinds and create
a state for them. So that's what MINIMIZED could be.

> - shaded window - WM_STATE is Iconic, STATE_HIDDEN, STATE_SHADED

Maybe we shouldn't do STATE_HIDDEN here, and clarify that in the spec.

>  Which means
> - iconic != minimized
> - there's no good way how to recognize the minimized state (see the KDE bug)

I don't think you've defined "minimized" adequately.

The basic issue here is that we *don't* assume the Windows-style
minimized/maximized/normal three-state model. Even GNOME/KDE introduce
shaded as well, and other WMs do more strange things. So you can't just
assume we know what "minimized" is. We currently define HIDDEN as
"anything that hides the window, except workspaces" - we could add
"except shaded" perhaps.

> - the iconic state itself probably doesn't make much sense, as it doesn't have 
> any clear meaning, or even something close - you can e.g. have a window in 
> NormalState that's not actually visible because it's on inactive virtual 
> desktop with WM that doesn't unmap in such case, and only its iconic 
> representation (=taskbar entry) is visible. Moreover one can in practice 
> achieve the same with simply obscuring the window by another one, so I kind 
> of fail to see the point of the iconic state[*].

IconicState is still used for state transitions; i.e. asking to move in
and out of IconicState with ICCCM mechanisms means to "minimize" /
"unminimize"

Also, IconicState/NormalState are required to match the map status of
the window. There's some reason this is useful I think, but I don't
remember it.

>  I personally think it'd be the simplest if we introduced STATE_MINIMIZED 
> simply for telling the taskbar about the window's state

What does STATE_MINIMIZED mean though, different from HIDDEN?

Havoc





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