Re: Preserved Window Placement



> I started this discussion because I'm getting really frustrated with
> the lack of window state preservation on Linux. I understand that this
> involves a lot of different pieces of software. I am talking about the
> desired end result. I probably do not have a complete understanding of
> the various individual actors involved in creating the experience.

Ok there are basically three players

- The application, which needs to know what to put in each window if you
  restart/resume it and needs to tell others how to give it that
  information back when a restart occurs

- The session manager which needs to store all this information away
  somewhere, and also use it as necessary to restore session state

- The window manager which makes the actual sizing and placement happen

and in some cases the window and session manager happen to be implemented
as the same application.

> capabilities excludes providing the option of preserved window
> placement. Obviously for now this is simply not a priority for X. I

X has supported this since the 1990s maybe earlier. The fact Gnome
doesn't do it by default is a Gnome decision. In some respects asking
whether it is a priority for X is a bit meaningless. X provides the
mechanism, it's up to the desktops how they choose to use it and if they
consider it a priority or not. It is apparently not a priority for Gnome.

Likewise the traditional use of it is to save state on close, restore it
on restart of the desktop. There is nothing that requires a desktop does
it (so Gnome is not 'wrong' or 'non-compliant') and there is nothing
saying you can't save the session state of an application and use that
whenever the app is re-opened from fresh rather than just to keep the
desktop state over a restart. You could for example imagine a bar where
when you close an application its icon is added to a list of restorable
states that sat somewhere (a sort of 'recently used' of desktop state).

X and the session management protocol just define how the information
flows.

> guess I was thinking preserved window placement would be something
> handled by metacity or mutter or something that is under the domain of
> Gnome. Hence, discussing it here.

Gnome has the opportunity to use the data as it sees fit.

> > The MacOS approach assumes applications are constrained to a particular
> > narrow set of behaviours, local and to some extent written with one set of
> > tools.
> 
> Right, but there are already some standard elements between Gnome/GTK
> and KDE applications, right? Should I be talking to the
> Freedesktop.org people?

The X session management protocol which handles this is even more
abstracted. Qt implements it, Gtk implements it but so do many other
toolkits including those on non Unix operating systems.

> > That's not to say the X approach couldn't do with improvement, but that
> > its solving a whole different and vastly larger problem space.
> 
> Please point me in the direction of the people I should be discussing
> this with. At the moment I'm refusing to give up on using Linux (or
> whatever word we can use to refer to the collective of desktop
> environments that share the same or similar resources). If I can help
> improve this little detail, I will. But it might be out of my scope.

I would say there are three sets of people

X11.org - for the actual protocol itself which is shared across all the
environments

Gtk/Qt/etc for toolkit level support changes

Gnome for how Gnome chooses to implement and use features of the session
management.

and (as with anything else) sometimes specific app vendors because their
app has bugs

Alan


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