/
0002-icontheme-Check-2x-variants-more-closely-before-atta.patch
53 lines (47 loc) · 2.27 KB
/
0002-icontheme-Check-2x-variants-more-closely-before-atta.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
From a73c60a6adf9708cdab0f3de3dacd7d9640a3eeb Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Mon, 15 Jul 2013 12:32:51 +0200
Subject: [PATCH 2/2] icontheme: Check 2x variants more closely before
attaching
Ensure the 2x variant is actually bigger (fallbacks ensure you
get either 2x or 1x icons) before attaching it to the returned
pixbuf.
---
gtk/gtkicontheme.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 23295ca..0e42adc 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -1418,7 +1418,9 @@ gtk_icon_theme_lookup_icon (GtkIconTheme *icon_theme,
variant = gtk_icon_theme_lookup_icon_for_scale (icon_theme, icon_name,
size, 2, flags);
- if (retval && variant)
+ if (retval && variant &&
+ retval->pixbuf && variant->pixbuf &&
+ gdk_pixbuf_get_width (variant->pixbuf) > gdk_pixbuf_get_width (retval->pixbuf))
g_object_set_data_full (G_OBJECT (retval->pixbuf),
"gdk-pixbuf-2x-variant",
g_object_ref (variant->pixbuf),
@@ -1525,7 +1527,9 @@ gtk_icon_theme_choose_icon (GtkIconTheme *icon_theme,
retval = choose_icon (icon_theme, icon_names, size, 1, flags);
variant = choose_icon (icon_theme, icon_names, size, 2, flags);
- if (retval && variant)
+ if (retval && variant &&
+ retval->pixbuf && variant->pixbuf &&
+ gdk_pixbuf_get_width (variant->pixbuf) > gdk_pixbuf_get_width (retval->pixbuf))
g_object_set_data_full (G_OBJECT (retval->pixbuf),
"gdk-pixbuf-2x-variant",
g_object_ref (variant->pixbuf),
@@ -1609,7 +1613,9 @@ gtk_icon_theme_load_icon (GtkIconTheme *icon_theme,
variant = gtk_icon_theme_load_icon_for_scale (icon_theme, icon_name,
size, 2, flags, NULL);
- if (pixbuf && variant)
+
+ if (pixbuf && variant &&
+ gdk_pixbuf_get_width (variant) > gdk_pixbuf_get_width (pixbuf))
g_object_set_data_full (G_OBJECT (pixbuf),
"gdk-pixbuf-2x-variant",
g_object_ref (variant),
--
1.8.3.2