Here's a patch to add optional libstartup-notification support to The Gimp. This will allow desktop managers as Gnome's to entertain users with a *so* funny clock cursor, while Gimp launches and initializes itself. I hope the maintainers find this worthy of being included in the main distribution. Regards, -- Miguel Ibarra <mibarra@xxxxxxxxxx>
diff -Nru -x '*~' -x '*.o' -x '*.orig' -x '*.rej' gimp-1.2.5.orig/app/Makefile.am gimp-1.2.5/app/Makefile.am --- gimp-1.2.5.orig/app/Makefile.am Thu Feb 13 17:13:11 2003 +++ gimp-1.2.5/app/Makefile.am Thu Jul 24 15:42:13 2003 @@ -464,6 +464,7 @@ -I$(top_srcdir) \ -I$(top_srcdir)/intl \ $(GTK_CFLAGS) \ + $(STARTUP_NOTIFICATION_CFLAGS) \ -I$(includedir) gimp_1_2_LDADD = \ @@ -474,6 +475,7 @@ $(GTK_LIBS) \ $(GIMP_THREAD_LIBS) \ $(GIMP_MP_LIBS) \ + $(STARTUP_NOTIFICATION_LIBS) \ $(INTLLIBS) gimp-win32res.o : gimp.rc diff -Nru -x '*~' -x '*.o' -x '*.orig' -x '*.rej' gimp-1.2.5.orig/app/app_procs.c gimp-1.2.5/app/app_procs.c --- gimp-1.2.5.orig/app/app_procs.c Thu Apr 3 17:59:30 2003 +++ gimp-1.2.5/app/app_procs.c Thu Jul 24 15:42:31 2003 @@ -349,11 +349,59 @@ static GtkWidget *label2 = NULL; static GtkWidget *pbar = NULL; +#ifdef HAVE_STARTUP_NOTIFICATION +#define SN_API_NOT_YET_FROZEN +#include <libsn/sn-launchee.h> +#include <gdk/gdkx.h> + +static void +sn_error_trap_push (SnDisplay *display, + Display *xdisplay) +{ + gdk_error_trap_push (); +} + +static void +sn_error_trap_pop (SnDisplay *display, + Display *xdisplay) +{ + gdk_error_trap_pop (); +} + +static void +startup_notification_complete(void) +{ + SnDisplay *sn_display = NULL; + SnLauncheeContext *context = NULL; + Display *xdisplay; + + xdisplay = GDK_WINDOW_XDISPLAY(win_initstatus->window); + sn_display = sn_display_new (xdisplay, + sn_error_trap_push, + sn_error_trap_pop); + + context = sn_launchee_context_new_from_environment (sn_display, + DefaultScreen(xdisplay)); + + if (context != NULL) + { + sn_launchee_context_complete (context); + sn_launchee_context_unref (context); + sn_display_unref (sn_display); + } + +} +#endif + static void destroy_initialization_status_window (void) { if (win_initstatus) { + #ifdef HAVE_STARTUP_NOTIFICATION + startup_notification_complete(); + #endif + gtk_widget_destroy (win_initstatus); if (logo_pixmap != NULL) @@ -362,6 +410,7 @@ logo_pixmap = NULL; win_initstatus = label1 = label2 = pbar = logo_area = NULL; } + } static void diff -Nru -x '*~' -x '*.o' -x '*.orig' -x '*.rej' gimp-1.2.5.orig/configure.in gimp-1.2.5/configure.in --- gimp-1.2.5.orig/configure.in Sun Jun 1 22:54:58 2003 +++ gimp-1.2.5/configure.in Thu Jul 24 15:41:48 2003 @@ -748,6 +748,8 @@ *** --disable-print to configure (but you won't be able to print then).]) fi +dnl This is for startup notification +PKG_CHECK_MODULES(STARTUP_NOTIFICATION, libstartup-notification-1.0 >= 0.5, AC_DEFINE([HAVE_STARTUP_NOTIFICATION],[], [Should we use libstartup-notification]) echo "Building with libstartup-notification", echo "Building without libstartup-notification") dnl This is for the gimp-perl plug-in AC_ARG_ENABLE(perl, [ --disable-perl do not build perl extension [by default enabled] @@ -931,6 +933,9 @@ AC_SUBST(GIMP_PLUGINS) AC_SUBST(GIMP_MODULES) +AC_SUBST(STARTUP_NOTIFICATION_CFLAGS) +AC_SUBST(STARTUP_NOTIFICATION_LIBS) + dnl Output the Makefiles AC_OUTPUT([