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  <christ...@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  <christ...@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  <christ...@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);
 

_______________________________________________
maemo-commits mailing list
maemo-commits@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-commits

Reply via email to