stylecontext: Stop querying style providers for icon factories

Nobody implements this feature and I don't wanna maintain it. If it
turns out somebody is using it, we gotta invent something.
This commit is contained in:
Benjamin Otte 2012-03-16 03:35:13 +01:00
parent a52336bedc
commit 015e3a768f

View File

@ -338,7 +338,6 @@ struct GtkStyleInfo
struct StyleData
{
GtkCssComputedValues *store;
GSList *icon_factories;
GArray *property_cache;
};
@ -608,8 +607,6 @@ style_data_free (StyleData *data)
g_object_unref (data->store);
clear_property_cache (data);
g_slist_free_full (data->icon_factories, g_object_unref);
g_slice_free (StyleData, data);
}
@ -991,42 +988,6 @@ build_properties (GtkStyleContext *context,
_gtk_css_lookup_free (lookup);
}
static void
build_icon_factories (GtkStyleContext *context,
StyleData *style_data,
GtkWidgetPath *path)
{
GtkStyleContextPrivate *priv;
GList *elem, *list, *global_list = NULL;
priv = context->priv;
list = priv->providers_last;
if (priv->screen)
{
global_list = g_object_get_qdata (G_OBJECT (priv->screen), provider_list_quark);
global_list = g_list_last (global_list);
}
while ((elem = find_next_candidate (list, global_list)) != NULL)
{
GtkIconFactory *factory;
GtkStyleProviderData *data;
data = elem->data;
if (elem == list)
list = list->prev;
else
global_list = global_list->prev;
factory = gtk_style_provider_get_icon_factory (data->provider, path);
if (factory)
style_data->icon_factories = g_slist_prepend (style_data->icon_factories, factory);
}
}
static GtkWidgetPath *
create_query_path (GtkStyleContext *context)
{
@ -1104,7 +1065,6 @@ style_data_lookup (GtkStyleContext *context,
path = create_query_path (context);
build_properties (context, priv->current_data, path, state);
build_icon_factories (context, priv->current_data, path);
gtk_widget_path_free (path);
}
@ -2690,8 +2650,6 @@ gtk_style_context_lookup_icon_set (GtkStyleContext *context,
const gchar *stock_id)
{
GtkStyleContextPrivate *priv;
StyleData *data;
GSList *list;
g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), NULL);
g_return_val_if_fail (stock_id != NULL, NULL);
@ -2699,20 +2657,6 @@ gtk_style_context_lookup_icon_set (GtkStyleContext *context,
priv = context->priv;
g_return_val_if_fail (priv->widget_path != NULL, NULL);
data = style_data_lookup (context, 0);
for (list = data->icon_factories; list; list = list->next)
{
GtkIconFactory *factory;
GtkIconSet *icon_set;
factory = list->data;
icon_set = gtk_icon_factory_lookup (factory, stock_id);
if (icon_set)
return icon_set;
}
return gtk_icon_factory_lookup_default (stock_id);
}