Thursday, April 21, 2005

kicker vs karaoke

so i haven't been blogging much in the last week or so. just haven't been in the mood. something to do with spring i think. or the lack of anything interesting to say.

i've been reading over some of the OSDL publications recently, and i think i have a blog entry forthcoming on that. the Open Clip Art Collection collaboration is coming along very nicely. i'll be writing something for their monthly release announcement regarding what we've been up to and are doing in the future. there are some very cool people there, including Bryce Herrington who has OSDL connections. see how it all comes together? "it's a small world after all... it's a small world after all" ;-)

and speaking of songs that annoy ..... i went karaoking last night. a fight broke out between two groups of karaoke singers. bizarre. surreal. and why i karaoke. it reminds me just how wonderful and odd people are. at least when you let them drink and hold a microphone at the same time.

kicker has been progressing at a nice pace, thanks to efforts by Stefan Nikolaus and myself. it's a pleasure working with Stefan: he's creative, communicative, a good coder and willing to do the full job not just half-assed patches. cookies for Stefan.
in the above shot (which has some weird graphical artifacts in it for some reason) you can see the new "flat" taskbar. the buttons can still appear if you want, as can button-on-hover and text rendered with a halo. this makes the taskbar transparency friendly and look a lot less busy. as a friend visiting the other day said, "wow.. that actually looks calm and pleasant to look at."

beyond looks, the taskbar now has mouse over effects (M.O.E.s) much like those that appear on application buttons in 3.4. they contain the full title of the task in question along with information as to which desktop they are on, whether there are unsaved contents in the window, whether the window requires attention, etc...

i've added thumbnail support to these M.O.E.s, but X just isn't up to the task yet. but when it is, kicker will be in there like a dirty shirt.

also, the drop down menus on task groups now reflect the status of the windows properly for greater consistency. and startup items no longer appear immediately but have a small delay so that if the app you just launched starts up quickly you don't get a flickering taskbar due to adding and removing buttons you don't even really get to see. it's nice that KDE app start up times are getting to the point that this is a concern. =)

the pager has gained drag and drop, so you can move windows between desktops using it. in fact, you can drag from the taskbar to the pager as well. crazy cool. next will be to (optionally) show the desktop backgrounds.

but most importantly i've tracked down the reason for all the taskbar crashes that were reported on 3.4: a mistake in library design. the taskbar library, in a bid to conserve memory, has a manager class that manages a collection of window information structures. these were being passed around as pointers all over the place and the manager would signal that it was going to delete one of them and then delete it immediately thereafter. very dangerous. due to the various inefficiencies in the taskbar code prior to 3.4 it would get away with it fairly consistently, but when i tricked out the taskbar to do things in a more streamlined fashion the timing became an issue. anytime the event loop would get reentered during on the "signal then delete" actions, things stood the chance of going bad. so i ported the taskbar libs to use KSharedPtrs which manage their own life span via refcounting using the coolness of C++'s very flexible templates and operator overloading. so all is good in HEAD and i'm about to spend my day doing the same for 3.4.1.

then i can go and close a ton of bug reports on b.k.o. huzzah.

5 comments:

Wench said...

You karaoke because it reminds you of us. And face it, you miss us, dammit! ;)

praseodymium said...

Is this like taskbar v2?

Aaron J. Seigo said...

@Priss: yeah... you got me there. *sniff* we so need to get together before we're all wrinkled and useless.

@Praseodymium: yes, only implemented more efficiently.

miro said...

Hi,
what about drag&drop for systray? Or at least restore the app (just like its restored when I drag over it in the taskbar) so I can drag a file to the systray icon of kmail:)

I know that the ystray protocol is shit but hey if it works for kde only apps I wouldn't care.

Bye

Aaron J. Seigo said...

@miro: we're actually working on this. Seli posted some prelim patches to kde-core-devel. it'll be for KDE4, but this time we'll have gotten it Right(tm), finally!