WM managed MDI (was Re: Three different tab implementations)
Lubos Lunak
l.lunak at suse.cz
Mon Feb 3 16:13:38 GMT 2003
On Monday 03 of February 2003 16:50, Neil Stevens wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On Monday February 03, 2003 07:34, Lubos Lunak wrote:
> > If you want to get MDI support from the WM, not just the fluxbox-like
> > ability to group some windows together, you need to tell the WM more
> > than just 'this is a window'. If you don't, you'll just have a bunch of
> > unrelated windows which you'll have to manually manage yourself.
>
> I agree. I think we need the ability to tell KWin that a group of document
> windows is related. Then people who want MDI can flick a KWin switch and
> get it.
>
> How does kstart work (You've said that your thoughts are affected by
> knowing the window manager side of things, well, my thoughts are hindered
> by *not* knowing X window management). KStart seems to manage to tell
> KWin that the app it launches should go on Desktop N. Could something
> similar tell the window manager that App X is one of KDevelop's Documents?
KStart is an ugly hack BTW, but yes, that's what I was trying to explain in
short in the first mail in this thread. Maybe an important thing I forgot to
mention was that WM doesn't know apps, it knows only windows, and it will be
able to find the app or whatever more only if it will be able to find it out
from the information the app placed on the window.
So in order to get KDevelop use KWin for MDI managing, it would have to
create the different windows as toplevel and mark them appropriately. The
menubar+toolbar window would be simply marked as "hi, I'm the main window of
the app", the C++ windows would be "my mainwindow is that window
(=menubar+toolbars), and I belong to this and this group of windows(=all C++
windows of KDevelop)", and the listview would be "my mainwindow is that
window(=menubar+toolbars)".
KWin would see that, and would e.g. decide to place the mainwindow ... erm
... somewhere, the listview window right below it with left edges aligned,
and, since the user has as a preference e.g. tabbing, it would tab together
all the C++ windows, and place them below the mainwindow and on the right of
the listview window.
The slight problem here is that it could place the windows also differently,
say, the project listview below all the C++ windows, which is a bit dumb.
This is actually the very thing I wanted to hear from you WRT KDevelop - how
to make it tell the WM the arrangement of the various windows in some sane
way.
[snip]
> > >
> > > Do you believe that KWin is hopeless for document management?
> >
> > I'm not sure what you mean exactly with this. I think KWin could handle
> > MDI instead of the apps. The question is, how good job it will do,
> > compared to apps taking care of it themselves. See the description of a
> > MDI library http://lists.kde.org/?l=kde-core-devel&m=104404380507514&w=2
> > , and tell me what the WM could do better than such lib would do. I can
> > think of some advantages, like focus follows mouse working the same for
> > everything, but right now I can't come up with something really
> > convincing, especially given the disadvantages (WM supporting it is
> > needed, etc.).
>
> The convincing thing, the reason that convinces me, should be that we'll
> never get an MDI and an SDI version of every app. A big reason being
> we'll always have developers like Falk or I that have a strong preference
> one way or the other.
But a flexible universal MDI will require a lib, be it handled by the lib
itself or the WM. The lib may allow you to configure it so that you'll get
all tabs automatically undocked as toplevel windows even if it implements the
MDI all on its own. This one isn't a very good reason why it should be the
WM.
--
Lubos Lunak
KDE developer
---------------------------------------------------------------------
SuSE CR, s.r.o. e-mail: l.lunak at suse.cz , l.lunak at kde.org
Drahobejlova 27 tel: +420 2 9654 2373
190 00 Praha 9 fax: +420 2 9654 2374
Czech Republic http://www.suse.cz/
More information about the kde-core-devel
mailing list