X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkstylecascade.c;h=ea63fc86f6637c56c2a05f3e0cf29150ebfe0f38;hb=1247a842a228980a06893e6167ae8c73a4bb6eed;hp=a71a55e2a8e13d5e8e8d35678f299ab78e94ceab;hpb=42dc0ea0fd423f3794d1f77bb9bb84d5bc9d3c0e;p=~andy%2Fgtk diff --git a/gtk/gtkstylecascade.c b/gtk/gtkstylecascade.c index a71a55e2a..ea63fc86f 100644 --- a/gtk/gtkstylecascade.c +++ b/gtk/gtkstylecascade.c @@ -123,6 +123,29 @@ gtk_style_cascade_provider_iface_init (GtkStyleProviderIface *iface) iface->get_style_property = gtk_style_cascade_get_style_property; } +static GtkSettings * +gtk_style_cascade_get_settings (GtkStyleProviderPrivate *provider) +{ + GtkStyleCascade *cascade = GTK_STYLE_CASCADE (provider); + GtkStyleCascadeIter iter; + GtkSettings *settings; + GtkStyleProvider *item; + + for (item = gtk_style_cascade_iter_init (cascade, &iter); + item; + item = gtk_style_cascade_iter_next (cascade, &iter)) + { + if (!GTK_IS_STYLE_PROVIDER_PRIVATE (item)) + continue; + + settings = _gtk_style_provider_private_get_settings (GTK_STYLE_PROVIDER_PRIVATE (item)); + if (settings) + return settings; + } + + return NULL; +} + static GtkCssValue * gtk_style_cascade_get_color (GtkStyleProviderPrivate *provider, const char *name) @@ -233,6 +256,7 @@ static void gtk_style_cascade_provider_private_iface_init (GtkStyleProviderPrivateInterface *iface) { iface->get_color = gtk_style_cascade_get_color; + iface->get_settings = gtk_style_cascade_get_settings; iface->get_keyframes = gtk_style_cascade_get_keyframes; iface->lookup = gtk_style_cascade_lookup; iface->get_change = gtk_style_cascade_get_change;