WM managed MDI (was Re: Three different tab implementations)

Lubos Lunak l.lunak at suse.cz
Mon Feb 3 15:34:20 GMT 2003


On Monday 03 of February 2003 14:54, Neil Stevens wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On Monday February 03, 2003 05:39, Lubos Lunak wrote:
> > On Monday 03 of February 2003 14:16, Neil Stevens wrote:
> > > -----BEGIN PGP SIGNED MESSAGE-----
> > > Hash: SHA1
> > >
> > > On Monday February 03, 2003 04:55, Lubos Lunak wrote:
> > > >  Now it would be perhaps good idea to ask Neil to describe this
> > > > KDevelop thing in more detail. I'm affected by knowing the way WM
> > > > works, and perhaps also limited by this, so maybe there's a better
> > > > way of doing it. It would be good to hear how KDevelop should look
> > > > like and work from somebody who doesn't know the internals. So,
> > > > Neil? (The Cervisia example isn't that good, it simply starts new
> > > > editor for every file - KDevelop needs more than just this).
> > >
> > > What would KDevelop need to do to my text editor?  I can't say more
> > > unless Iknow what you're looking for.
> >
> >  I suppose the windows for C++ files should be organized in some way. If
> > every new window with C++ file will be simply "shown somewhere", then I
> > think it's much better to use tabs inside of KDevelop which will place
> > it so that it doesn't cover other important windows yet it takes as much
> > space as possible. What exactly is the WM way going to buy me if the WM
> > does a much worse job at placing the windows, since it won't know how to
> > place them correctly (and it won't, as long as there won't be a way how
> > the app will tell it)?
>
> I'm sorry, I don't think understand you.  How can a window *not* be "shown
> somewhere?"  Do you want KDevelop-related editors to be restriced to a
> portion of the desktop or something?  Child window MDI without the parent
> window?

 By "shown somewhere" I meant simply shown in some place, without any relation 
to things around it. If I run KDevelop, and I want to have the project 
listview visible on the left of the C++ windows, just showing them (=C++ 
windows) won't do a good job. You maximize the C++ window -> the project 
listview window gets hidden. You make the project listview a bit narrower -> 
C++ window won't move and resize to use also that additional window. This 
wouldn't happen with tabs.

 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.

 View splitting in Konqueror is a much better example of this. Say that you 
simply decide to let the WM manage the two new views, so you just unmap the 
old window and map two new ones, together taking the place of the old one. 
Guess what - the WM, unless including a crystal ball feature, won't find out 
there's any kind of relation between the two windows. You can drag the 
splitter between the two views in Konqueror, but in this example, you'd have 
first to shrink one window, and then resize the second one.

 It could work with WM too, it's just that the WM would have to be told the 
relation between the two windows. Somehow. And this 'somehow' was what I was 
trying to find out, without realizing I possibly see the whole thing 
differently. I don't know what exactly people in this discussion meant 
(http://lists.kde.org/?l=kde-core-devel&m=104414112521454&w=2), but I think 
that if you want the WM help you organize the window on the desktop, it needs 
to be told how.

 BTW, I personally don't find just placing the windows in the "right" 
positions to be the way it should be done, and I don't think I'd want to play 
that game. First of all, that's avoiding the WM, and if you want to abuse 
things, you can as well do completely without the WM. Second, it simply won't 
work, for example just move some window, and the "right" positions will be 
suddenly wrong.

>
> Oh, tabs *don't* place windows.  They completely gives up the notion of
> window placement, and destroy the ability to see more than one document
> simultaneously.  So how can that be better than what KWin can do now?
>
> 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.).

-- 
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