2 Jul 2000 munizao   » (Apprentice)

Bun-Bun's Theatre of Horrors Presents: Tasklist

I've been looking at the tasklist applet since trying out Iain's "tooltip" patch that he mentioned here a bit ago. My first impression on trying it was, "Yuck," (it doesn't follow the tooltip style from my gtk theme, and it displays the tooltip on the wrong part of the screen entirely.) Then I looked at the patch itself and noticed it didn't use a real tooltip but instead makes a halfbaked attempt at drawing a tooltip from scratch.

What could posess someone to not use a real tooltip on the buttons? I began to have the awful suspicion that mere incompetance could not cause such ugliness, but something deeper must have been going on.

And indeed, to my mounting horror as I read the tasklist applet code, I found that there was. The buttons on the tasklist are not real buttons, you see, but facsimiles painted on a larger widget. So of course, they could not have tooltips added to them. Suddenly, seemingly disparate problems I had with tasklist began to make sense. The buttons don't prelight, unlike any other button in any other gtk+ app, because they're not buttons. You can't tab between the buttons to switch windows, because they're not buttons. At the expense of additional code complexity, (to rewrite, (somewhat inadequately,) the bits of gtk+ they chose not to use in the first place,) and loss of functionality, a small amount of memory footprint has been saved.

Now, this might be an understandable mistake, if it had been made absent an example of how to do this right, but the authors not only had the old gnome-pager around, but they were writing it specifically as a replacement. Now, I have heard that the old gnome-pager code was unmaintainable, but that is no reason to replace the design with this monstrosity.

That said, I should thank the tasklist authors for all the hard work that they've put into it, and note that quite a bit of it was done quite well.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!