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.