diff -upr mate-desktop-1.6.1-orig/configure.ac mate-desktop-1.6.1/configure.ac
--- mate-desktop-1.6.1-orig/configure.ac 2013-05-13 13:25:46.000000000 +0200
+++ mate-desktop-1.6.1/configure.ac 2013-05-23 11:56:04.318835560 +0200
@@ -236,6 +236,15 @@ AC_SUBST(GETTEXT_PACKAGE)
AM_GLIB_GNU_GETTEXT
+AC_ARG_ENABLE([gnucat],
+ [AS_HELP_STRING([--enable-gnucat], [enable the use of gnu cat as logo in mate-about])],
+ [enable_gnucat=yes], [enable_gnucat=no])
+
+if test "x$enable_gnucat" = "xyes"; then
+ MATE_ABOUT_CFLAGS="$MATE_ABOUT_CFLAGS -DENABLE_GNUCAT=1"
+fi
+AM_CONDITIONAL(GNUCAT_ENABLED, test "x$enable_gnucat" = "xyes")
+
dnl ============================================================================
dnl | se comprueba unique
dnl | de lo contrario, se intenta utilizar libunique
@@ -343,4 +352,5 @@ mate-desktop $VERSION `echo mate-desktop
Startup notification support: ${have_startup_notification}
XRandr support: ${have_randr}
Build gtk-doc documentation: ${enable_gtk_doc}
+ Enable gnucat: ${enable_gnucat}
"
Nur in mate-desktop-1.6.1/mate-about: gnu-cat.gif.
Nur in mate-desktop-1.6.1/mate-about: gnu-cat_navideno_v3.png.
diff -upr mate-desktop-1.6.1-orig/mate-about/Makefile.am mate-desktop-1.6.1/mate-about/Makefile.am
--- mate-desktop-1.6.1-orig/mate-about/Makefile.am 2013-05-13 13:25:46.000000000 +0200
+++ mate-desktop-1.6.1/mate-about/Makefile.am 2013-05-23 11:57:08.732446891 +0200
@@ -11,6 +11,11 @@ AM_CPPFLAGS = \
@INTLTOOL_DESKTOP_RULE@
+if GNUCAT_ENABLED
+pixmapdir = $(datadir)/pixmaps
+pixmap_DATA = gnu-cat_navideno_v3.png gnu-cat.gif
+endif
+
desktopdir = $(datadir)/applications
desktop_in_files = mate-about.desktop.in
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
diff -upr mate-desktop-1.6.1-orig/mate-about/mate-about.c mate-desktop-1.6.1/mate-about/mate-about.c
--- mate-desktop-1.6.1-orig/mate-about/mate-about.c 2013-05-13 13:25:46.000000000 +0200
+++ mate-desktop-1.6.1/mate-about/mate-about.c 2013-05-23 12:26:36.740226552 +0200
@@ -20,6 +20,7 @@
#ifndef __MATE_ABOUT_C__
#define __MATE_ABOUT_C__
+#endif
#include "mate-about.h"
@@ -32,6 +33,37 @@
textdomain(package);
#endif
+ // what a mess!
+ #ifdef ENABLE_GNUCAT
+
+ // Thanks! http://www.gtkforums.com/viewtopic.php?t=1639
+ typedef struct _iter_arg {
+ GtkWidget* widget;
+ GdkPixbufAnimation* animation;
+ GdkPixbufAnimationIter* iter;
+ } iter_arg_t;
+
+ gboolean on_animation_frame(iter_arg_t* object)
+ {
+ if (object->widget == NULL)
+ {
+ return FALSE;
+ }
+
+ static gint frame = 1;
+
+ if (gdk_pixbuf_animation_iter_advance(object->iter, NULL))
+ {
+ frame++;
+
+ gtk_about_dialog_set_logo((GtkAboutDialog*) object->widget, gdk_pixbuf_animation_iter_get_pixbuf(object->iter));
+ }
+
+ return TRUE;
+ }
+
+ #endif
+
#if GTK_CHECK_VERSION(3, 0, 0) && !defined(UNIQUE)
static void mate_about_on_activate(GtkApplication* app)
@@ -74,6 +106,55 @@
gtk_window_set_default_icon_name(icon);
+ #ifdef ENABLE_GNUCAT
+
+ /* check if it's christmas, to show a different image */
+ gboolean is_christmas = FALSE;
+
+ GDate* d = g_date_new();
+ g_date_set_time_t(d, (time_t) time(NULL));
+
+ if (g_date_get_month(d) == G_DATE_DECEMBER)
+ {
+ GDateDay day = g_date_get_day(d);
+
+ if (day >= 24 && day <=25)
+ {
+ is_christmas = TRUE;
+ }
+ }
+
+ g_date_free(d);
+
+ if (is_christmas == TRUE)
+ {
+ GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "gnu-cat_navideno_v3.png", NULL);
+ gtk_about_dialog_set_logo(mate_about_dialog, pixbuf);
+ g_object_unref(pixbuf);
+ }
+ else
+ {
+ iter_arg_t animation_object;
+ GdkPixbufAnimation* animation;
+ GdkPixbufAnimationIter *iter;
+ GtkWidget* image;
+
+ animation = gdk_pixbuf_animation_new_from_file(PIXMAPS_DIR "gnu-cat.gif", NULL);
+
+ if (animation != NULL)
+ {
+ iter = gdk_pixbuf_animation_get_iter(animation, NULL);
+
+ animation_object.animation = animation;
+ animation_object.iter = iter;
+ animation_object.widget = (GtkWidget*) mate_about_dialog;
+
+ gtk_about_dialog_set_logo(mate_about_dialog, gdk_pixbuf_animation_iter_get_pixbuf(iter));
+
+ g_timeout_add(gdk_pixbuf_animation_iter_get_delay_time(iter), (GSourceFunc) on_animation_frame, (gpointer) &animation_object);
+ }
+ }
+
#if GTK_CHECK_VERSION(3, 0, 0) || GTK_CHECK_VERSION(2, 6, 0)
gtk_about_dialog_set_logo_icon_name(mate_about_dialog, icon);