From: Robert M. <rob...@de...> - 2005-04-03 06:00:57
|
There are some bugs with the docklet, such as crashing when the panel gets killed, appearing on the wrong desktop/screen with multihead, and sometimes appearing 1 pixel wide, that can be fixed by getting a new version of eggtrayicon.[ch] from the libegg module in GNOME CVS at: http://cvs.gnome.org/viewcvs/libegg/libegg/tray/eggtrayicon.c (although this is actually a bit of a lie, the principle of keeping up to date with upstream stands - the 1 pixel wide fix got lost somewhere inside RedHat but hopefully it'll appear upstream soon - see: http://bugzilla.gnome.org/show_bug.cgi?id=172479 ) I've been working up a set of patches which Gaim we'd apply to eggtrayicon.c v1.6 and eggtrayicon.h v1.4, which are the latest in CVS, to update the version we ship with to benefit from these bug fixes. The numbers indicate order of application, but there's no real dependency except the first two: eggtrayicon.c-01-fix-1-pixel-wide.diff - the patch I tracked down to fix the 1 pixel wide bug eggtrayicon.c-02-backport-to-gtk2.0.diff eggtrayicon.h-02-backport-to-gtk2.0.diff - my first cut at backporting this latest version to work with gtk2.0 (before GdkScreen and GdkDisplay appeared, and proper multihead support was born) - this is based off the diff between version 1.1 and 1.2 in libegg CVS, but the changes in the mean time have been fairly heavy eggtrayicon.c-03-gaim-gtype-kludge.diff - this is horrible and I apologise to fans of the GType system, but it prevents Gaim crashing with cryptic GType errors when you reload the docklet plugin eggtrayicon.c-04-remove-gettext.diff - don't need to make libintl/etc build in eggtrayicon.c, the only i18n'd strings are part of introspectable attributes It is my intention to, when I submit a final patch with the updated eggtrayicon.[ch], store these seperated patches in the gaim CVS repository (but not in dist tarballs), so that this updating in future isn't as arduous as it was for me just now, and it's clear how and why we've changed the widget. The reason I'm e-mailing is that I'm stuck with the 2nd patch, I've made it compile under Gtk 2.0, and it works and embeds a tray icon the first time, but when the tray manager gets killed the docklet creates a new icon that never shows up. Someone who is more awake and perhaps more aware than me could usefully compare, test and tweak the code in eggtrayicon.c.1.6.fix+backport to eggtrayicon.c.1.2 and work out why the latter behaves correctly under Gtk 2.0, but the former does not. I've included a tarball with all of these patches and various versions of eggtrayicon.[ch] from libegg CVS. Many Thanks, Rob P.S: If anyone's holding the vote, I'd vote strongly for dropping Gtk 2.0 support, but you're not going to are you? :D |