From 5decde94c5e8c9dc3856c1497eab32f3671a39bc Mon Sep 17 00:00:00 2001 From: Stefano Karapetsas Date: Thu, 24 Apr 2014 13:41:15 +0200 Subject: Use bigger logo image in about dialog, if available in icon theme Code taken from GTK3 about dialog --- libmate-desktop/mate-aboutdialog.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'libmate-desktop') diff --git a/libmate-desktop/mate-aboutdialog.c b/libmate-desktop/mate-aboutdialog.c index 0ef99c5..f2a8a24 100644 --- a/libmate-desktop/mate-aboutdialog.c +++ b/libmate-desktop/mate-aboutdialog.c @@ -1671,8 +1671,36 @@ mate_about_dialog_set_logo_icon_name (MateAboutDialog *about, if (gtk_image_get_storage_type (GTK_IMAGE (priv->logo_image)) == GTK_IMAGE_PIXBUF) g_object_notify (G_OBJECT (about), "logo"); + gint *sizes = gtk_icon_theme_get_icon_sizes (gtk_icon_theme_get_default (), + icon_name); + gint i, best_size = 0; + + for (i = 0; sizes[i]; i++) + { + if (sizes[i] >= 128 || sizes[i] == -1) + { + best_size = 128; + break; + } + else if (sizes[i] >= 96) + { + best_size = MAX (96, best_size); + } + else if (sizes[i] >= 64) + { + best_size = MAX (64, best_size); + } + else + { + best_size = MAX (48, best_size); + } + } + g_free (sizes); + gtk_image_set_from_icon_name (GTK_IMAGE (priv->logo_image), icon_name, GTK_ICON_SIZE_DIALOG); + gtk_image_set_pixel_size (GTK_IMAGE (priv->logo_image), best_size); + g_object_notify (G_OBJECT (about), "logo-icon-name"); g_object_thaw_notify (G_OBJECT (about)); -- cgit v1.2.1