Re: Proposal for ConfigureRequest handling



On Sunday 25 August 2002 12:21, Havoc Pennington wrote:
> Ben Jansens <xor orodu net> writes:
> > So what does everyone think of the offset property? Anyone know any
> > other way to provide for an accurate placement including decorations?
>
> I think it might be nicer (less race-condition-prone and less complex
> code on the client side) if there were a way to basically send a
> configure request that includes a gravity intended to override the
> normal gravity.
>
> Maybe we could pack this into a client message:
>
>  type = _NET_MOVERESIZE_REQUEST
>  l[0] = gravity
>  l[1] = x
>  l[2] = y
>  l[3] = width;
>  l[4] = height;

That is probably the only sane solution to the problem. In fact that is 
exactly how AfterStep modules do that - only using its internal messaging 
protocol. I thought that fvwm does that too ?

Thing is that offset/frame size property is evil, as it creates illusion of 
possibility of positioning windows precisely. Most likely outcome of this 
will be attempts by application to correct its window position in responce to 
WM actions, and we definately don't want to see that.

Difficulties will also arise from the fact that size of decorations may 
dramatically change during lifetime of the window, and as the matter of fact 
size of decorations may change as the result of ConfigureWindow request by 
client, which may easily trigger race condition.

Needless to say that concept of frame decorations is not applicable to all of 
window managers.

On the part of application, the most reasonable approach would be to properly 
use gravity and then let window manager handle actuall placement. The only 
time when legit exact placement is required, is probably when pager attempts 
to move window in responce to user action. And for such purpose above message 
will be perfect.

AS the last note need I remind you, that ICCCM clearly states that clients 
should not require any specific position for itself, and relying on such 
specific position is even greater NONO.

>
> Or something like that. probably want a way to do only w/h without x/y
> and vice versa.
>
> Then all the pager has to do is send such a client message, with
> gravity set to StaticGravity or whatever, and the pager doesn't have
> to contain any gravity calculations, or worry about the value of a
> property on the client window.
> Havoc

Sasha



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