Fwd: Re: allowed window operations



----------  Forwarded Message  ----------

Subject: Re: allowed window operations
Date: Fri, 12 Oct 2001 01:09:53 -0500
From: ,,, <sasha leeza>
To: Havoc Pennington <hp redhat com>

On Thursday 11 October 2001 17:40, you wrote:
> Hi,
>
> Tasklists and pagers need some way to properly activate/deactivate the
> menu items for window operations. For example, if I open the window

<snip>

> We could introduce _NET_WM_STATE_MINIMIZED and _NET_WM_STATE_CLOSED
> and use them only in _NET_WM_ALLOWED_STATE, not in _NET_WM_STATE,
> but that seems a bit hacky.

I take it MINIMIZED is the same as Iconic from ICCCM, and CLOSED - same as
Withdrawn ?

Indeed those two could be disabled by Motif hints.

The problem I see here is that sematic of this is different from sematic of
_NET_WM_STATE property. For example if Minimized is disabled, it does not
mean that client may never iconify self. Instead it means that user should
not be provided with interface to do so. Yet client application itself could
always enter this state by sending appropriate messages to WM.
Accordingly I would think that _NET_WM_ALLOWED_STATE would be a misleading
name for such property. Something like  _NET_WM_ALLOWED_STATE_CONTROLS
is needed.

Another difficulty here is that only 4 States could be disabled that way. I
don't see how that property may list STATE_MODAL, STATE_SKIP_TASKBAR and
STATE_SKIP_PAGER as disabled.

At the same time, such property should be able to disable things like Move
and Resize, which are not states, but actions. ( see MWM_FUNC_RESIZE and
MWM_FUNC_MOVE in Motif properties )

That brings us to the point that we need not ALLOWED_STATE, but instead we
need ALLOWED_ACTION or ALLOWED_CONTROL, and completely separate set of Atoms
to use there. Like :

Property : _NET_WM_ALLOWED_CONTROL
Atoms :
_NET_WM_CONTROL_MOVE,
_NET_WM_CONTROL_RESIZE
_NET_WM_CONTROL_SHADE
_NET_WM_CONTROL_STICK
_NET_WM_CONTROL_MAXIMIZE
_NET_WM_CONTROL_MINIMIZE
_NET_WM_CONTROL_CLOSE

Or maybe even finer granularity for Move/Resize/Maximize controls by
separating Vertical and Horizontal directions :
_NET_WM_CONTROL_MOVE_HORZ
_NET_WM_CONTROL_MOVE_VERT
_NET_WM_CONTROL_RESIZE_HORZ
_NET_WM_CONTROL_RESIZE_VERT
_NET_WM_CONTROL_MAXIMIZE_HORZ
_NET_WM_CONTROL_MAXIMIZE_VERT

> Havoc

Sasha

-------------------------------------------------------




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