SF.net SVN: geany:[4819] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Sun Apr 11 21:56:34 UTC 2010


Revision: 4819
          http://geany.svn.sourceforge.net/geany/?rev=4819&view=rev
Author:   eht16
Date:     2010-04-11 21:56:34 +0000 (Sun, 11 Apr 2010)

Log Message:
-----------
Instantly update the toolbar icon size and style when the corresponding global GTK settings are changed.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/toolbar.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2010-04-11 21:56:23 UTC (rev 4818)
+++ trunk/ChangeLog	2010-04-11 21:56:34 UTC (rev 4819)
@@ -10,6 +10,9 @@
    src/toolbar.c, src/toolbar.h:
    Shorten the toolbar popup menu, only provide items for Toolbar
    Preferences and to Hide the toolbar.
+ * src/toolbar.c:
+   Instantly update the toolbar icon size and style when the
+   corresponding global GTK settings are changed.
 
 
 2010-04-09  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>

Modified: trunk/src/toolbar.c
===================================================================
--- trunk/src/toolbar.c	2010-04-11 21:56:23 UTC (rev 4818)
+++ trunk/src/toolbar.c	2010-04-11 21:56:34 UTC (rev 4819)
@@ -316,6 +316,24 @@
 }
 
 
+static void toolbar_notify_style_cb(GObject *object, GParamSpec *arg1, gpointer data)
+{
+	const gchar *arg_name = g_param_spec_get_name(arg1);
+	gint value;
+
+	if (toolbar_prefs.use_gtk_default_style && utils_str_equal(arg_name, "gtk-toolbar-style"))
+	{
+		value = ui_get_gtk_settings_integer(arg_name, toolbar_prefs.icon_style);
+		gtk_toolbar_set_style(GTK_TOOLBAR(main_widgets.toolbar), value);
+	}
+	else if (toolbar_prefs.use_gtk_default_icon && utils_str_equal(arg_name, "gtk-toolbar-size"))
+	{
+		value = ui_get_gtk_settings_integer(arg_name, toolbar_prefs.icon_size);
+		gtk_toolbar_set_icon_size(GTK_TOOLBAR(main_widgets.toolbar), value);
+	}
+}
+
+
 GtkWidget *toolbar_init(void)
 {
 	GtkWidget *toolbar;
@@ -324,6 +342,7 @@
 	GtkAction *action_build;
 	GtkAction *action_searchentry;
 	GtkAction *action_gotoentry;
+	GtkSettings *gtk_settings;
 
 	uim = gtk_ui_manager_new();
 	group = gtk_action_group_new("GeanyToolbar");
@@ -375,6 +394,13 @@
 
 	toolbar = toolbar_reload(NULL);
 
+	gtk_settings = gtk_widget_get_settings(GTK_WIDGET(toolbar));
+	if (gtk_settings != NULL)
+	{
+		g_signal_connect(gtk_settings, "notify::gtk-toolbar-style",
+			G_CALLBACK(toolbar_notify_style_cb), NULL);
+	}
+
 	return toolbar;
 }
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list