Re: resizing with gravity
- From: Sasha Vasko <sasha aftercode net>
- To: Russell Shaw <rjshaw netspace net au>
- Cc: wm-spec-list gnome org
- Subject: Re: resizing with gravity
- Date: Wed, 26 Apr 2006 16:42:58 -0500
Russell Shaw wrote:
Sasha Vasko wrote:
An X app might open a grid of top-level windows, and rearrange them
as more windows are added or removed.
No application should ever rely on being able to do that.
Such apps may exist primarily for embedded systems without a window
manager, but it is still useful to be able to use those apps where
a WM is running. In that case, the WM must have a policy setting that
allows the app to run as designed, or in a semi-managed way.
Yes, that is what I'm saying - user (via window manager configuration)
determines how windows are placed. Not the client application.
In fact I suggest that we explicitely state the opposite: "Clients
MUST NEVER EVER include x and y in ConfigureRequests" Although most
smart and responsibly implemented clients already know that, and those
who suffer from delusion of grandeur, will always ignore such
statements anyways, so really there is no point in amending specs.
Clients should only be able to change size of the top level windows
and then let window managers reposition them in accordance to its
policies. Which is were gravity comes into play ( from WM_NORMAL_HINTS
). And again, this gravity should be choosen by clients based on user
request of initial geometry, and should not be mangled by the client
Window managers have no place in dictating how an application manages
its top-level windows.
Last time I checked Window Managers are REQUIRED to intercept
ConfigureRequest. It is my humble guess that WM does have a
responcibility of placing windows as it sees fit.
Window managers exist solely for the purpose of the *user* to specify
how top-level windows should be managed.
Yes and that is why window managers have THEIR OWN CONFIGURATION
settings. And this is why there are so many window managers available!
But after user has selected particular window manager and configured it
how it wants windows to be placed - client have no business whatsoever
interfering with that!
If a user wants to disable automatic window management for one app, then
so be it. A WM that doesn't allow this is broken.
ConfigureRequest is still handled by WM anyway you go about it. Clients
CANNOT possible determine appropriate x and y as they could never
precisely determine the size of the decorations at the time of request.
There may not even be a decoration! There could not even be such thing
as free placement of the window - WM may tile them all together, or use
tabs, and allow only one window on screen at a time. There could be all
kinds of placement policies out there, and no client will ever be able
to account for all of them.
Simple example: a terminal application.
You start it like so: xterm -geometry 100x25-0-0
Terminal then gets placed at the bottom-right corner of the screen.
Now what would happen if user decided to change font size in it ? Do
you really want xterm to try and calculate what its x and y should be
for ConfigureRequest??? I don't. And I doubt that xterm developers
differ with me on that one.
If an application was designed with the assumption that a WM is always
running, then the offset calculation isn't required.
If the app was designed assuming a WM may not be present for a significant
time, then i *would* expect the app to do the offset calculation.
Then this must not be part of Extended WINDOW MANAGEMENT specs, if your
goal is to account for when WM is not running.
You may want to go back in time (around 2000/2001) and re-read ML
archives on this particular topic.
On some GUI lists, the developers object to patches because they say
"most users don't need it" or "most users don't do it that way" etc.
If each feature of a toolkit satisfied 90% of users (and dissatisfied
10% of users), then after 21 features, 90% of users would object to some
This is why users and developers doing non-trivial stuff find GUI on linux
crap compared to some proprietory systems.
The proper way to do this stuff is to have it easy to understand (adequate
documentation and help systems), and have every parameter easily
by all users.
Yes, and it is done in the Window Manager's configuration in order to
enforce uniform policy on all clients. Clients messing around with
placement is exactly the anarchy that you complain about.
] [Thread Prev