|Fitt's law and GNOME
||[Jun. 16th, 2004|12:51 am]
A while back I wrote about why Fitt's law is important, and ended with the question, "So how does GNOME stack up?". I'll try to answer that question now.
What are the components that need to be Fitt's law aware? Clearly the panel, as it occupies screen edges. Metacity too, since window borders are often aligned to edges. Gtk+, for it draws most of the widgets. And individual apps, at times.
The panel is mostly perfect. There's no gap with the screen edge, and you can activate launchers or any other panel item by throwing the mouse. I believe the default of having two panels was made in order to make better utilization of edges. I think this is a great idea, although I'm a bit worried that having 2 panels means your icons are smaller (36 pixels instead of 48) and therefore more difficult to get at. And the hide buttons are not present by default, which is also great: you can activate the start menu by throwing the mouse SouthWest.
Gotta say that the panel beats the pants off Windows: not only is the Windows taskbar rudiculously short (24 pixels!) and hence more difficult to click on, it encourages the approach of putting application shortcuts on the desktop where its hidden from view and you have to minimize all your windows just to get at them.
There's one panel bug related to Fitt's law I've run into (not confirmed), but its an implementation bug not a design bug.
Metacity does pretty well too. The most basic thing is that windows shouldn't have borders when maximized so that apps can put their widgets on the screen edges, and this issue has been taken care of long back. Another major thing is that the minimize/maximize/close buttons should extend to the top edge of the screen when the window is maximized. The close button, in particular, should extend to the top right corner. Apparently this is a theme issue, and metacity is not at fault. Theoretically metacity could override theme behavior when the window is maximized, but workarounds instead of fixes is poor software engineering. A patch for Simple already exists, and someone needs to make patches for other themes or request their authors to fix them.
Another Fitt's law issue is that the titlebar should be big, but that's again a theme issue. The problem is that the minimize/maximize/close buttons aren't big enough. Windows XP solves this by making the titlebar really big -- 36 pixels I believe (the titlebar, with 5 UI elements, is 50% taller than the taskbar, which has over a dozen. What were these guys thinking!!).
Now I'm going to make a bit of a controversial suggestion. The minimize/maximize/close buttons should be made rectangular, i.e, wider. I know you're screaming "ugly!!", but hear me out. These are important buttons which should be easier to click. I often find myself often hitting close instead of maximize, and I imagine others do too. There was one theme in KDE 2.x (don't remember the name) which used wider buttons, and it didn't look too bad at all. A 2x ratio should look pretty decent. And its just a matter of getting used to anyway.
OK, on to gtk. Many of the widgets seem to be bigger in 2.x than in 1.x, so that's good. I don't know if its entirely a theme issue or gtk has anything to do with it, but in any case there's nothing to complain about. The only other thing that gtk could/should do is to make it possible for apps to put stuff at the edges if they want to do so. I don't think it currently lets you put a toolbar at the left edge, because there are borders around buttons which you can't choose to not have. But then the HIG lets you have vertical toolbars only in exceptional situations, so it isn't that big of a deal. The only other widget is the scrollbar. Fitt's law is particularly important for a scrollbar, IMHO, because it lets you do your work without taking your eyes off what you're doing (as opposed to, say, the close button, in which case you'd be taking your eyes off what you're doing anyway). Mozilla's scrollbar is already right aligned, so gtk isn't preventing you. On the other hand gtknotebook has a frame which it doesn't let you hide if there's more than one tab, so if the scrollbar is inside a notebook there's a problem. At least that's what I've been able to figure out. Unfortunately that bug has been RESOLVED NOTABUG, and I don't know why. Maybe I'm missing something, and if someone knows I'd be glad if you could tell me.
Individual apps: I haven't found any app other than mozilla/firefox in which the scrollbar works correctly when maximized. Perhaps what's surprising is that it does work in mozilla. I mean, how many developers have heard of Fitt's law anyway? I certainly hadn't until a few weeks ago. It would be great if the HIG made a mention of it.
OK, that's it for now. I'll be filing more bugs if I can think of anything else :)