mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 02:40:11 +00:00
Allow falling back to another icon theme before hicolor. (#325546, Rodney
2006-01-11 Matthias Clasen <mclasen@redhat.com> Allow falling back to another icon theme before hicolor. (#325546, Rodney Dawes) * gtk/gtksettings.c: Add a gtk-fallback-icon-theme setting. * gdk/x11/gdkevents-x11.c: Map it to the XSetting Net/FallbackIconTheme. * gtk/gtkicontheme.c: Consult the fallback icon theme before looking in hicolor.
This commit is contained in:
parent
a469257a23
commit
f35d4e1e47
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
||||
2006-01-11 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
Allow falling back to another icon theme before
|
||||
hicolor. (#325546, Rodney Dawes)
|
||||
|
||||
* gtk/gtksettings.c: Add a gtk-fallback-icon-theme setting.
|
||||
|
||||
* gdk/x11/gdkevents-x11.c: Map it to the XSetting Net/FallbackIconTheme.
|
||||
|
||||
* gtk/gtkicontheme.c: Consult the fallback icon theme before
|
||||
looking in hicolor.
|
||||
|
||||
2006-01-10 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* tests/testgtk.c: Add an expander example.
|
||||
|
@ -1,3 +1,15 @@
|
||||
2006-01-11 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
Allow falling back to another icon theme before
|
||||
hicolor. (#325546, Rodney Dawes)
|
||||
|
||||
* gtk/gtksettings.c: Add a gtk-fallback-icon-theme setting.
|
||||
|
||||
* gdk/x11/gdkevents-x11.c: Map it to the XSetting Net/FallbackIconTheme.
|
||||
|
||||
* gtk/gtkicontheme.c: Consult the fallback icon theme before
|
||||
looking in hicolor.
|
||||
|
||||
2006-01-10 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* tests/testgtk.c: Add an expander example.
|
||||
|
@ -2802,6 +2802,7 @@ static const char settings_names[] =
|
||||
"Net/CursorBlinkTime\0" "gtk-cursor-blink-time\0"
|
||||
"Net/ThemeName\0" "gtk-theme-name\0"
|
||||
"Net/IconThemeName\0" "gtk-icon-theme-name\0"
|
||||
"Net/FallbackIconTheme\0" "gtk-fallback-icon-theme\0"
|
||||
"Gtk/CanChangeAccels\0" "gtk-can-change-accels\0"
|
||||
"Gtk/ColorPalette\0" "gtk-color-palette\0"
|
||||
"Gtk/FontName\0" "gtk-font-name\0"
|
||||
|
@ -72,6 +72,7 @@ struct _GtkIconThemePrivate
|
||||
guint pixbuf_supports_svg : 1;
|
||||
|
||||
char *current_theme;
|
||||
char *fallback_theme;
|
||||
char **search_path;
|
||||
int search_path_len;
|
||||
|
||||
@ -412,11 +413,15 @@ update_current_theme (GtkIconTheme *icon_theme)
|
||||
if (!priv->custom_theme)
|
||||
{
|
||||
gchar *theme = NULL;
|
||||
gchar *fallback_theme = NULL;
|
||||
gboolean changed = FALSE;
|
||||
|
||||
if (priv->screen)
|
||||
{
|
||||
GtkSettings *settings = gtk_settings_get_for_screen (priv->screen);
|
||||
g_object_get (settings, "gtk-icon-theme-name", &theme, NULL);
|
||||
g_object_get (settings,
|
||||
"gtk-icon-theme-name", &theme,
|
||||
"gtk-fallback-icon-theme", &fallback_theme, NULL);
|
||||
}
|
||||
|
||||
if (!theme)
|
||||
@ -427,10 +432,26 @@ update_current_theme (GtkIconTheme *icon_theme)
|
||||
g_free (priv->current_theme);
|
||||
priv->current_theme = theme;
|
||||
|
||||
do_theme_change (icon_theme);
|
||||
changed = TRUE;
|
||||
}
|
||||
else
|
||||
g_free (theme);
|
||||
|
||||
if ((priv->fallback_theme && !fallback_theme) ||
|
||||
(!priv->fallback_theme && fallback_theme) ||
|
||||
(priv->fallback_theme && fallback_theme &&
|
||||
strcmp (priv->fallback_theme, fallback_theme) != 0))
|
||||
{
|
||||
g_free (priv->fallback_theme);
|
||||
priv->fallback_theme = fallback_theme;
|
||||
|
||||
changed = TRUE;
|
||||
}
|
||||
else
|
||||
g_free (fallback_theme);
|
||||
|
||||
if (changed)
|
||||
do_theme_change (icon_theme);
|
||||
}
|
||||
}
|
||||
|
||||
@ -504,6 +525,8 @@ gtk_icon_theme_set_screen (GtkIconTheme *icon_theme,
|
||||
G_CALLBACK (display_closed), icon_theme);
|
||||
g_signal_connect (settings, "notify::gtk-icon-theme-name",
|
||||
G_CALLBACK (theme_changed), icon_theme);
|
||||
g_signal_connect (settings, "notify::gtk-fallback-icon-theme-name",
|
||||
G_CALLBACK (theme_changed), icon_theme);
|
||||
}
|
||||
|
||||
update_current_theme (icon_theme);
|
||||
@ -1019,8 +1042,10 @@ load_themes (GtkIconTheme *icon_theme)
|
||||
priv->all_icons = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
|
||||
insert_theme (icon_theme, priv->current_theme);
|
||||
|
||||
/* Always look in the "default" icon theme */
|
||||
|
||||
/* Always look in the "default" icon theme, and in a fallback theme */
|
||||
if (priv->fallback_theme)
|
||||
insert_theme (icon_theme, priv->fallback_theme);
|
||||
insert_theme (icon_theme, DEFAULT_THEME_NAME);
|
||||
priv->themes = g_list_reverse (priv->themes);
|
||||
|
||||
|
@ -66,6 +66,7 @@ enum {
|
||||
PROP_SPLIT_CURSOR,
|
||||
PROP_THEME_NAME,
|
||||
PROP_ICON_THEME_NAME,
|
||||
PROP_FALLBACK_ICON_THEME,
|
||||
PROP_KEY_THEME_NAME,
|
||||
PROP_MENU_BAR_ACCEL,
|
||||
PROP_DND_DRAG_THRESHOLD,
|
||||
@ -259,6 +260,7 @@ gtk_settings_class_init (GtkSettingsClass *class)
|
||||
GTK_PARAM_READWRITE),
|
||||
NULL);
|
||||
g_assert (result == PROP_THEME_NAME);
|
||||
|
||||
result = settings_install_property_parser (class,
|
||||
g_param_spec_string ("gtk-icon-theme-name",
|
||||
P_("Icon Theme Name"),
|
||||
@ -267,6 +269,15 @@ gtk_settings_class_init (GtkSettingsClass *class)
|
||||
GTK_PARAM_READWRITE),
|
||||
NULL);
|
||||
g_assert (result == PROP_ICON_THEME_NAME);
|
||||
|
||||
result = settings_install_property_parser (class,
|
||||
g_param_spec_string ("gtk-fallback-icon-theme",
|
||||
P_("Fallback Icon Theme Name"),
|
||||
P_("Name of a icon theme to fall back to"),
|
||||
NULL,
|
||||
GTK_PARAM_READWRITE),
|
||||
NULL);
|
||||
g_assert (result == PROP_FALLBACK_ICON_THEME);
|
||||
|
||||
result = settings_install_property_parser (class,
|
||||
g_param_spec_string ("gtk-key-theme-name",
|
||||
|
Loading…
Reference in New Issue
Block a user