WM managed MDI (was Re: Three different tab implementations)
Waldo Bastian
bastian at kde.org
Mon Feb 3 17:35:40 GMT 2003
On Monday 03 February 2003 17:49, Neil Stevens wrote:
> But KDevelop *shoudln't* tell KWin how to manage windows. If every app is
> responsible for its own management, we're little better off than we are
> now.
KDevelop (or any application for that matter) should tell KWin enough
information about the window it is about to create in order for KWin to make
an informed decission about how to place it. A dialog box needs to be treated
differently from a main-window. For KWin they are both simply windows unless
the application tells it about their different roles.
At the moment a number of window manager hints are defined (and used) for this
purpose, the latest additions being in the NETWM standard. In order to
support MDI like behaviour such as tabbed-grouping you need additional hints
(or whatever) that makes it possible for the application to inform the window
manager e.g. that a certain window is part of a certain group. *)
With the proper hints the window manager can decide whether a newly created
konqy window should become a new tab or a new window.
Example:
In konqueror you may want to open a new view side-by-side the old view, or you
may want to open a new view as a tab. That is a decision that can only be
made by the user depending on his/her task at hand. So when the user tells
the application to open the new view, it will also want to tell which of
those two ways it prefers. (For example by holding Shift while clicking a link
it could select one or the other). When the application creates the view, it
will need to inform the window manager about the decission of the user so
that the window manager can act accordingly.
The hard part is now to a) design a proper set of hints that allows to make
the window manager the desired placement decision b) implement these hints in
KWin so that it actually does that.
As for your suggestion of using command line arguments to indicate a grouping:
The window manager operates in terms of windows and has no knowledge
whatsoever about processes or their command line options. In order for such
command line option to have any effect it would need to be passed (e.g. via a
window manager hint) by the application to the window manager whenever the
process creates a window. This is how for example the --caption command line
argument is handled.
Cheers,
Waldo
*) We already use the "class" attribute for grouping in the taskbar. Would it
be possible to use this attribute for tab-based grouping as well?
--
bastian at kde.org -=|[ SuSE, The Linux Desktop Experts ]|=- bastian at suse.com
More information about the kde-core-devel
mailing list