Okay, the window manager (which draws the window border) is a completely separate process from the client application (eg: Firefox). Some apps tell the window manager that they want to draw their own window border, but this never works out well for top-level windows because they end up horrifically inconsistent.
If they could transparently pass the unused events off to the window manager, which is possible but inexplicably unimplemented (and it's too late now to make it work easily, since client apps are greedy with events), it would make a bit more sense. However, that still leaves us with the fact that they have nothing in common with the native look. Here are the ways that bottom mockup could be achieved:
* Firefox could be hard coded to a specific style of window borders. For example, how Chromium can draw its own window borders - which is wisely not the default in Linux. Note that Chromium's close buttons, when it handles matters itself, look exactly like Windows Vista's. Also, if you have different settings for what mouse buttons do in your real window manager, Chromium ignores them and assumes that double click means Maximize.
(This is also why Chromium's "native GTK" style looks like utter garbage. GTK themes do not handle the window border, yet it expects to get remotely useful information from the GTK theme!)
* Firefox could duplicate Metacity's theme engine. It could read Metacity's theme and then render a window border just like Metacity with some small changes. Lots of lines of code, possible breakage since Metacity themes are not built to facilitate tabs and user switchers, but maybe close to working...
* Firefox could add a few more lines of pixels so that the Metacity title bar is just a Metacity title bar, give up on the user chooser thing and arbitrarily assume that the bottom of Metacity's title bar is coloured dark brown.
(And then there are other window managers).
I think I have shot those options down sufficiently.
Now, I like dreaming. Personally, I would love to see the window manager drawing enormously wasteful borders thing die an elegant death, but this needs to happen at its source; not in a pesky client application that goes out of its way to stick out like a sore thumb.
It bothers me to see a proposed interface design that is Not Possible, because the only thing that could come of this is a realization too late in the cycle that it is not going to work followed by an ugly redesign. It will cause kludges and give us an interface that is not optimized for the situation at hand, instead smothered in the sad remnants of something unnatural.
Bookmarks