Author: jannis
Date: 2008-10-14 13:51:59 +0000 (Tue, 14 Oct 2008)
New Revision: 28252
Modified:
xfce4-panel/trunk/ChangeLog
xfce4-panel/trunk/plugins/launcher/launcher.c
Log:
* launcher/launcher.c: Change the way the icon theme change callback
is installed: use gtk_icon_theme_for_screen() in combination with
g_signal_connect() instead of adding a signal emission hook to the
icon theme class. This should fix bug #4474.
Modified: xfce4-panel/trunk/ChangeLog
===================================================================
--- xfce4-panel/trunk/ChangeLog 2008-10-14 13:31:45 UTC (rev 28251)
+++ xfce4-panel/trunk/ChangeLog 2008-10-14 13:51:59 UTC (rev 28252)
@@ -1,3 +1,10 @@
+2008-10-14 15:49 jannis
+
+ * launcher/launcher.c: Change the way the icon theme change callback
+ is installed: use gtk_icon_theme_for_screen() in combination with
+ g_signal_connect() instead of adding a signal emission hook to the
+ icon theme class. This should fix bug #4474.
+
2008-10-13 11:42 stephan
* mcs-plugins/*, settings/*,
Modified: xfce4-panel/trunk/plugins/launcher/launcher.c
===================================================================
--- xfce4-panel/trunk/plugins/launcher/launcher.c 2008-10-14 13:31:45 UTC
(rev 28251)
+++ xfce4-panel/trunk/plugins/launcher/launcher.c 2008-10-14 13:51:59 UTC
(rev 28252)
@@ -38,9 +38,7 @@
#include "launcher-dialog.h"
/* prototypes */
-static gboolean launcher_utility_icon_theme_changed
(GSignalInvocationHint *ihint,
- guint
n_param_values,
- const
GValue *param_values,
+static void launcher_utility_icon_theme_changed
(GtkIconTheme *icon_theme,
LauncherPlugin *launcher);
static gboolean launcher_icon_button_expose_event (GtkWidget
*widget,
GdkEventExpose *event,
@@ -105,20 +103,15 @@
/**
* Utility Functions
**/
-static gboolean
-launcher_utility_icon_theme_changed (GSignalInvocationHint *ihint,
- guint n_param_values,
- const GValue *param_values,
- LauncherPlugin *launcher)
+static void
+launcher_utility_icon_theme_changed (GtkIconTheme *icon_theme,
+ LauncherPlugin *launcher)
{
/* update the button icon */
launcher_icon_button_set_icon (launcher);
/* destroy the menu */
launcher_menu_destroy (launcher);
-
- /* keep hook alive */
- return TRUE;
}
@@ -815,7 +808,8 @@
launcher_plugin_new (XfcePanelPlugin *plugin)
{
LauncherPlugin *launcher;
- gpointer klass;
+ GtkIconTheme *icon_theme;
+ GdkScreen *screen;
/* create launcher structure */
launcher = panel_slice_new0 (LauncherPlugin);
@@ -851,12 +845,10 @@
gtk_button_set_focus_on_click (GTK_BUTTON (launcher->arrow_button), FALSE);
/* hook for icon themes changes */
- klass = g_type_class_ref (GTK_TYPE_ICON_THEME);
- launcher->theme_timeout_id =
- g_signal_add_emission_hook (g_signal_lookup ("changed",
GTK_TYPE_ICON_THEME),
- 0, (GSignalEmissionHook)
launcher_utility_icon_theme_changed,
- launcher, NULL);
- g_type_class_unref (klass);
+ screen = gtk_widget_get_screen (launcher->image);
+ icon_theme = gtk_icon_theme_get_for_screen (screen);
+ g_signal_connect (G_OBJECT (icon_theme), "changed",
+ G_CALLBACK (launcher_utility_icon_theme_changed),
launcher);
/* icon button signals */
g_signal_connect (G_OBJECT (launcher->icon_button), "state-changed",
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits