Re: frame size hints



On Mon, Dec 02, 2002 at 09:56:45AM -0600, Sasha Vasko wrote:
> Surely proposed approaches of storing frame size and allowing app to 
> position it's frame window instead of client window could remedy such 
> situation, but they both have a problem of not being compatible with 
> overall X approach, as well as putting burden of adjusting position 
> based on frame size on the app itself.

No, it's not intended to put the burden of moving their windows
on the app.  I would still write in big fat letters that the
application should not move its top level windows at all.  It
just addresses the problems that occur in applications that insist
on moving their windows.  The new interface is broken too, but at
least it is broken in a documented way.

> More effective and safer approach would be to continue on with 
> traditional combination of Gravity hint and initial placement of the 
> window. There is only one requirement that is needed to make it to work:
> There has to be a way to query the WM about client's withdrawn geometry, 
> as well as EFFECTIVE gravity used by WM.
> 
> Say, when cliends needs that - it sends a message to WM requesting this 
> information, and the WM upon receiving such message - calculates 
> withdrawn position of the window, and sets a property on this window with :
> 
> X, Y, WIDTH, HEIGHT, BORDER_WIDTH and GRAVITY,
> 
> of such withdrawn position.

Problem:  when the client receives the information, it may already
have changed.  I see no easy way around this race condition.

> Also whenever WM receives UnmapNotify 
> signaling that client withdraws its window - it should set such property 
> on client window anyway. Surely cliend could of queried its withdrawn 
> position by using XGetGeometry, but there is one essential piece of info 
> that could not be obtained that way - gravity value that has been used 
> by WM to position the window.

Well, but the client should know which gravity it requested
initially.  No need to ask the window manager.

> Having above all this information about its withdrawn position, any 
> clien could safely restore its position in future to the closest 
> possible approximation, without concerning itself about WM frames, frame 
> size, and any other external information, by simply setting its position 
>  prior to being mapped and using appropriate gravity in hints.

Yes, that should work.

Bye

Dominik ^_^  ^_^



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