diff --git a/pw3270.cbp b/pw3270.cbp index aefb8a8..c57dd55 100644 --- a/pw3270.cbp +++ b/pw3270.cbp @@ -130,7 +130,10 @@ - + + + @@ -189,9 +192,6 @@ - - diff --git a/src/include/pw3270/actions.h b/src/include/pw3270/actions.h index 3b78e71..03a7e55 100644 --- a/src/include/pw3270/actions.h +++ b/src/include/pw3270/actions.h @@ -120,7 +120,7 @@ GdkPixbuf * g_action_get_pixbuf(GAction *action, GtkIconSize icon_size, GtkIconLookupFlags flags); - GtkWidget * gtk_button_new_from_action(GAction *action, GtkIconSize icon_size); + GtkWidget * gtk_button_new_from_action(GAction *action, GtkIconSize icon_size, gboolean symbolic); GtkToolItem * gtk_tool_button_new_from_action(GAction *action, GtkIconSize icon_size, gboolean symbolic); G_END_DECLS diff --git a/src/objects/actions/button.c b/src/objects/actions/button.c index e692826..4425643 100644 --- a/src/objects/actions/button.c +++ b/src/objects/actions/button.c @@ -35,14 +35,19 @@ #include "private.h" #include - GtkWidget * gtk_button_new_from_action(GAction *action, GtkIconSize icon_size) { + GtkWidget * gtk_button_new_from_action(GAction *action, GtkIconSize icon_size, gboolean symbolic) { if(!action) return NULL; g_autofree gchar * icon_name = g_action_get_icon_name(action); - if(icon_name) + if(icon_name) { + if(symbolic && !strstr(icon_name,"-symbolic")) { + g_autofree gchar * name = g_strconcat(icon_name,"-symbolic",NULL); + return gtk_button_new_from_icon_name(name,icon_size); + } return gtk_button_new_from_icon_name(icon_name,icon_size); + } GdkPixbuf * pixbuf = g_action_get_pixbuf(action, GTK_ICON_SIZE_BUTTON, GTK_ICON_LOOKUP_GENERIC_FALLBACK); diff --git a/src/objects/window/header.c b/src/objects/window/header.c index fd05818..d88eaa7 100644 --- a/src/objects/window/header.c +++ b/src/objects/window/header.c @@ -124,6 +124,8 @@ GtkWidget * pw3270_header_button_new_from_builder(GtkWidget *widget, GtkBuilder * builder, const gchar *action_name) { GtkWidget * button = NULL; + g_autoptr(GSettings) settings = pw3270_application_window_settings_new(); + gboolean symbolic = g_settings_get_int(settings,"header-icon-type") == 1; if(g_str_has_prefix(action_name,"menu.")) { @@ -145,7 +147,7 @@ g_warning("Can't find action %s",action_name); } - button = gtk_button_new_from_action(action,GTK_ICON_SIZE_BUTTON); + button = gtk_button_new_from_action(action,GTK_ICON_SIZE_BUTTON,symbolic); gtk_actionable_set_action_name(GTK_ACTIONABLE(button),action_name); gtk_widget_set_visible(button,g_action_get_enabled(action)); -- libgit2 0.21.2