diff options
-rw-r--r-- | gtk/gtkrecentchooserdefault.c | 25 | ||||
-rw-r--r-- | gtk/gtkrecentchoosermenu.c | 39 |
2 files changed, 17 insertions, 47 deletions
diff --git a/gtk/gtkrecentchooserdefault.c b/gtk/gtkrecentchooserdefault.c index 88a891a858..5445c65a08 100644 --- a/gtk/gtkrecentchooserdefault.c +++ b/gtk/gtkrecentchooserdefault.c @@ -435,6 +435,7 @@ gtk_recent_chooser_default_constructor (GType type, gtk_tree_view_column_set_resizable (impl->icon_column, FALSE); renderer = gtk_cell_renderer_pixbuf_new (); + g_object_set (renderer, "stock-size", GTK_ICON_SIZE_BUTTON, NULL); gtk_tree_view_column_pack_start (impl->icon_column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func (impl->icon_column, renderer, @@ -984,23 +985,17 @@ recent_icon_data_func (GtkTreeViewColumn *tree_column, GtkTreeIter *iter, gpointer user_data) { - GtkRecentChooserDefault *impl = GTK_RECENT_CHOOSER_DEFAULT (user_data); GtkRecentInfo *info = NULL; - GdkPixbuf *pixbuf; - - gtk_tree_model_get (model, iter, - RECENT_INFO_COLUMN, &info, - -1); + GIcon *icon; + + gtk_tree_model_get (model, iter, RECENT_INFO_COLUMN, &info, -1); g_assert (info != NULL); - - pixbuf = gtk_recent_info_get_icon (info, impl->icon_size); - - g_object_set (cell, - "pixbuf", pixbuf, - NULL); - - if (pixbuf) - g_object_unref (pixbuf); + + icon = gtk_recent_info_get_gicon (info); + g_object_set (cell, "gicon", icon, NULL); + + if (icon != NULL) + g_object_unref (icon); gtk_recent_info_unref (info); } diff --git a/gtk/gtkrecentchoosermenu.c b/gtk/gtkrecentchoosermenu.c index 3a11e83786..9e37703ac3 100644 --- a/gtk/gtkrecentchoosermenu.c +++ b/gtk/gtkrecentchoosermenu.c @@ -78,9 +78,6 @@ struct _GtkRecentChooserMenuPrivate /* the recent manager object */ GtkRecentManager *manager; - /* size of the icons of the menu items */ - gint icon_size; - /* max size of the menu item label */ gint label_width; @@ -121,7 +118,6 @@ enum { }; -#define FALLBACK_ICON_SIZE 32 #define FALLBACK_ITEM_LIMIT 10 #define DEFAULT_LABEL_WIDTH 30 @@ -178,8 +174,6 @@ static void set_recent_manager (GtkRecentChooserMenu *menu, static void chooser_set_sort_type (GtkRecentChooserMenu *menu, GtkRecentSortType sort_type); -static gint get_icon_size_for_widget (GtkWidget *widget); - static void item_activate_cb (GtkWidget *widget, gpointer user_data); static void manager_changed_cb (GtkRecentManager *manager, @@ -281,7 +275,6 @@ gtk_recent_chooser_menu_init (GtkRecentChooserMenu *menu) priv->limit = FALLBACK_ITEM_LIMIT; priv->sort_type = GTK_RECENT_SORT_NONE; - priv->icon_size = FALLBACK_ICON_SIZE; priv->label_width = DEFAULT_LABEL_WIDTH; priv->first_recent_item_pos = -1; @@ -817,7 +810,7 @@ gtk_recent_chooser_menu_create_item (GtkRecentChooserMenu *menu, GtkRecentChooserMenuPrivate *priv; gchar *text; GtkWidget *item, *image, *label; - GdkPixbuf *icon; + GIcon *icon; g_assert (info != NULL); @@ -875,11 +868,13 @@ gtk_recent_chooser_menu_create_item (GtkRecentChooserMenu *menu, if (priv->show_icons) { - icon = gtk_recent_info_get_icon (info, priv->icon_size); - - image = gtk_image_new_from_pixbuf (icon); + icon = gtk_recent_info_get_gicon (info); + + image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - g_object_unref (icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + if (icon) + g_object_unref (icon); } g_signal_connect (item, "activate", @@ -1085,8 +1080,6 @@ gtk_recent_chooser_menu_populate (GtkRecentChooserMenu *menu) pdata->menu = menu; pdata->placeholder = g_object_ref (priv->placeholder); - priv->icon_size = get_icon_size_for_widget (GTK_WIDGET (menu)); - /* remove our menu items first */ gtk_recent_chooser_menu_dispose_items (menu); @@ -1152,24 +1145,6 @@ set_recent_manager (GtkRecentChooserMenu *menu, menu); } -static gint -get_icon_size_for_widget (GtkWidget *widget) -{ - GtkSettings *settings; - gint width, height; - - if (gtk_widget_has_screen (widget)) - settings = gtk_settings_get_for_screen (gtk_widget_get_screen (widget)); - else - settings = gtk_settings_get_default (); - - if (gtk_icon_size_lookup_for_settings (settings, GTK_ICON_SIZE_MENU, - &width, &height)) - return MAX (width, height); - - return FALLBACK_ICON_SIZE; -} - static void foreach_set_shot_tips (GtkWidget *widget, gpointer user_data) |