[maemo-commits] [maemo-commits] r19506 - in projects/haf/trunk/gtk+: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed Nov 18 14:06:37 EET 2009
Author: kalikiana
Date: 2009-11-18 14:06:20 +0200 (Wed, 18 Nov 2009)
New Revision: 19506

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/Makefile.am
   projects/haf/trunk/gtk+/gtk/gtkicontheme.c
   projects/haf/trunk/gtk+/gtk/gtkwindow.c
   projects/haf/trunk/gtk+/gtk/updateiconcache.c
Log:
2009-11-18  Christian Dywan  <christian at lanedo.com>

	* gtk/Makefile.am:
	* gtk/gtkicontheme.c (_gtk_icon_theme_check_reload):
	* gtk/gtkwindow.c (gtk_window_client_event):
	* gtk/updateiconcache.c (main): Implement _MAEMO_GTK_FLUSH_ICONS atom
	and use it in gtk-update-icon-cache to flush the icon cache.

Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2009-11-16 16:01:38 UTC (rev 19505)
+++ projects/haf/trunk/gtk+/ChangeLog	2009-11-18 12:06:20 UTC (rev 19506)
@@ -1,3 +1,11 @@
+2009-11-18  Christian Dywan  <christian at lanedo.com>
+
+	* gtk/Makefile.am:
+	* gtk/gtkicontheme.c (_gtk_icon_theme_check_reload):
+	* gtk/gtkwindow.c (gtk_window_client_event):
+	* gtk/updateiconcache.c (main): Implement _MAEMO_GTK_FLUSH_ICONS atom
+	and use it in gtk-update-icon-cache to flush the icon cache.
+
 2009-11-16  Christian Dywan  <christian at lanedo.com>
 
 	Fixes: NB#143062 - Browser, "Save page as" title right-aligned

Modified: projects/haf/trunk/gtk+/gtk/Makefile.am
===================================================================
--- projects/haf/trunk/gtk+/gtk/Makefile.am	2009-11-16 16:01:38 UTC (rev 19505)
+++ projects/haf/trunk/gtk+/gtk/Makefile.am	2009-11-18 12:06:20 UTC (rev 19506)
@@ -931,7 +931,8 @@
 
 gtk_query_immodules_2_0_SOURCES = queryimmodules.c
 
-gtk_update_icon_cache_LDADD = $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la
+gtk_update_icon_cache_LDADD = $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la \
+	$(top_builddir)/gdk/$(gdktargetlib)
 
 gtk_update_icon_cache_SOURCES = \
 	updateiconcache.c 

Modified: projects/haf/trunk/gtk+/gtk/gtkicontheme.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkicontheme.c	2009-11-16 16:01:38 UTC (rev 19505)
+++ projects/haf/trunk/gtk+/gtk/gtkicontheme.c	2009-11-18 12:06:20 UTC (rev 19506)
@@ -3420,6 +3420,9 @@
 void
 _gtk_icon_theme_check_reload (GdkDisplay *display)
 {
+#ifdef MAEMO_CHANGES
+  gpointer flush = g_object_get_data (G_OBJECT (display), "gtk-flush-icons");
+#endif
   gint n_screens, i;
   GdkScreen *screen;
   GtkIconTheme *icon_theme;
@@ -3434,6 +3437,10 @@
       if (icon_theme)
 	{
 	  icon_theme->priv->check_reload = TRUE;
+#ifdef MAEMO_CHANGES
+          if (flush)
+            blow_themes (icon_theme);
+#endif
 	  ensure_valid_themes (icon_theme);
 	  icon_theme->priv->check_reload = FALSE;
 	}

Modified: projects/haf/trunk/gtk+/gtk/gtkwindow.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkwindow.c	2009-11-16 16:01:38 UTC (rev 19505)
+++ projects/haf/trunk/gtk+/gtk/gtkwindow.c	2009-11-18 12:06:20 UTC (rev 19506)
@@ -5158,6 +5158,7 @@
 static GdkAtom atom_rcfiles = GDK_NONE;
 static GdkAtom atom_iconthemes = GDK_NONE;
 #ifdef MAEMO_CHANGES
+static GdkAtom atom_flush_icons = GDK_NONE;
 static GdkAtom atom_temporaries = GDK_NONE;
 #endif /* MAEMO_CHANGES */
 
@@ -5268,6 +5269,7 @@
       atom_rcfiles = gdk_atom_intern_static_string ("_GTK_READ_RCFILES");
       atom_iconthemes = gdk_atom_intern_static_string ("_GTK_LOAD_ICONTHEMES");
 #ifdef MAEMO_CHANGES
+      atom_flush_icons = gdk_atom_intern_static_string ("_MAEMO_GTK_FLUSH_ICONS");
       atom_temporaries = gdk_atom_intern_static_string ("_GTK_DELETE_TEMPORARIES");
 #endif /* MAEMO_CHANGES */
     }
@@ -5285,6 +5287,15 @@
     }
 
 #ifdef MAEMO_CHANGES
+  if (event->message_type == atom_flush_icons)
+    {
+      GdkDisplay *display = gtk_widget_get_display (widget);
+      send_client_message_to_embedded_windows (widget, atom_flush_icons);
+      g_object_set_data (G_OBJECT (display), "gtk-flush-icons", widget);
+      _gtk_icon_theme_check_reload (display);
+      g_object_set_data (G_OBJECT (display), "gtk-flush-icons", NULL);
+    }
+
   if (event->message_type == atom_temporaries)
     {
       send_client_message_to_embedded_windows (widget, atom_temporaries);

Modified: projects/haf/trunk/gtk+/gtk/updateiconcache.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/updateiconcache.c	2009-11-16 16:01:38 UTC (rev 19505)
+++ projects/haf/trunk/gtk+/gtk/updateiconcache.c	2009-11-18 12:06:20 UTC (rev 19506)
@@ -43,6 +43,11 @@
 #include <glib/gi18n.h>
 #include "gtkiconcachevalidator.h"
 
+#ifdef MAEMO_CHANGES
+#include "gdk/gdk.h"
+#include "x11/gdkx.h"
+#endif
+
 static gboolean force_update = FALSE;
 static gboolean ignore_theme_index = FALSE;
 static gboolean quiet = FALSE;
@@ -1702,7 +1707,20 @@
 
   g_type_init ();
   build_cache (path);
+#ifdef MAEMO_CHANGES
+  if (gdk_init_check (&argc, &argv))
+    {
+      GdkEventClient event;
 
+      event.type = GDK_CLIENT_EVENT;
+      event.window = NULL;
+      event.send_event = TRUE;
+      event.message_type = gdk_atom_intern ("_MAEMO_GTK_FLUSH_ICONS", FALSE);
+      event.data_format = 8;
+      gdk_event_send_clientmessage_toall ((GdkEvent *) &event);
+    }
+#endif
+
   if (strcmp (var_name, "-") != 0)
     write_csource (path);
 

More information about the maemo-commits mailing list