Re: Drawers in Metacity

On Thu, 2003-10-30 at 15:35, Rob Adams wrote:
> It may make sense to have some sort of WM support for something like
> this, but if we add it to metacity it would need to be a part of the
> EWMH.  Alternatively this could be implemented by GTK by setting
> TYPE_MENU on the drawers (maybe, not exactly sure of the semantics for
> drawers). I don't have time to build it and try it out right now, so
> some screenshots would indeed be very nice, and also a patch -up against
> HEAD would be good.  If this could be implemented in GTK only it would
> be better, since if the feature requires WM support many GTK apps
> wouldn't be able to use it, since most would want to be able to be
> ported to windows or to run under KWin or twm or whatever.

Everybody wants screenshots, so I made some.

This is really rough prototype stuff, so the window border on the drawer
looks kind of bad because I never got around to fixing it up.  Really,
you can't tell much from the screenshot.  You kind of just have to use
it.  But imagine that the drawer window follows moves of the parent
window, that it can be moved up and down along the side of the parent
window, and that it can be resized within those bounds.

My implementation is entirely in the window manager.  The window manager
knows the window is a drawer by a new window type hint.  Of course, the
correct thing to do is to push this through

It's probably possible to do this without window manager support.  But
then a program will have to manage an extra window that is not under the
window manager's control.  Then applications would be doing lots of
stuff that should be done by the window manager.  Having the window
manager support this natively is cleaner and easier.

> Couple of questions: what happens if you try to open a drawer when the
> window is already against the left edge of the screen? I.e. does it push
> over the window or just clip the drawer to the screen like a menu
> would?  Also, should this be brought up on usability ?

1) Well, there's two questions here:  What does happen, and what should
happen.  Again, my stuff is just a quick prototype.  I did it over a
weekend way back in June.  So it doesn't do anything intelligent.  As
for what should happen, that goes with my answer to (2).

2) Yes, absolutely.  If we were to do the drawers thing, lots of policy
would have to be hashed out.  And that stuff should definately take
place on usability    I certainly don't have all the answers.  I just
thought it was a neat idea, so I played around with it.  I have some
idea of how I'd like things to behave, and I have some idea of what's
easy to implement.[1]  But real people should have real discussions.

[1] Metacity's code is an absolute joy to work with.  Before I started
doing this, I had never looked at Metacity's codebase.  It was easy to
get into it and implement this.  A big thanks to Havoc.


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