summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Mikhaylenko <alexm@gnome.org>2020-09-24 15:35:57 +0500
committerAlexander Mikhaylenko <alexm@gnome.org>2020-09-24 15:35:57 +0500
commitdf55b74fb8343484f01af520a550395f35b8fa75 (patch)
treede9869a63327277d850e8d4ceb792ec7fc66e3ca
parentafe8ee011488d4185731dd6459233065af15bcde (diff)
downloadepiphany-wip/exalm/webapp-prefs.tar.gz
prefs-general-page: Don't manually scale web app iconwip/exalm/webapp-prefs
Let GtkImage scale it, ensuring it's crisp on HiDPI.
-rw-r--r--src/preferences/prefs-general-page.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/preferences/prefs-general-page.c b/src/preferences/prefs-general-page.c
index ca976701d..42f5ada03 100644
--- a/src/preferences/prefs-general-page.c
+++ b/src/preferences/prefs-general-page.c
@@ -800,23 +800,18 @@ static void
prefs_general_page_update_webapp_icon (PrefsGeneralPage *general_page,
const char *icon_url)
{
- GdkPixbuf *icon, *scaled_icon;
- int icon_width, icon_height;
- double scale;
+ g_autoptr (GdkPixbuf) icon = gdk_pixbuf_new_from_file (icon_url, NULL);
- icon = gdk_pixbuf_new_from_file (icon_url, NULL);
if (!icon)
return;
- icon_width = gdk_pixbuf_get_width (icon);
- icon_height = gdk_pixbuf_get_height (icon);
- scale = MIN ((double)32 / icon_width, (double)32 / icon_height);
- scaled_icon = gdk_pixbuf_scale_simple (icon, icon_width * scale, icon_height * scale, GDK_INTERP_NEAREST);
- g_object_unref (icon);
- gtk_image_set_from_pixbuf (GTK_IMAGE (general_page->webapp_icon), scaled_icon);
+ gtk_image_set_from_gicon (GTK_IMAGE (general_page->webapp_icon),
+ G_ICON (icon),
+ GTK_ICON_SIZE_DND);
+ gtk_image_set_pixel_size (GTK_IMAGE (general_page->webapp_icon), 32);
+
g_object_set_data_full (G_OBJECT (general_page->webapp_icon), "ephy-webapp-icon-url",
g_strdup (icon_url), g_free);
- g_object_unref (scaled_icon);
}
static void