diff --git a/0158-csstypes-expand-GtkCssChange-enum.patch b/0158-csstypes-expand-GtkCssChange-enum.patch new file mode 100644 index 0000000..c502804 --- /dev/null +++ b/0158-csstypes-expand-GtkCssChange-enum.patch @@ -0,0 +1,144 @@ +From 6323010e2e5f1103a7e89248b28a0b75a8b7fd71 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte +Date: Sun, 5 Jul 2015 22:45:34 +0200 +Subject: [PATCH 158/193] csstypes: expand GtkCssChange enum + +Instead of GTK_CSS_CHANGE_POSITION we now have 4 values: +GTK_CSS_CHANGE_FIRST_CHILD, GTK_CSS_CHANGE_LAST_CHILD, +GTK_CSS_CHANGE_NTH_CHILD and GTK_CSS_CHANGE_NTH_LAST_CHILD + +Nobody is using them directly yet. +--- + gtk/gtkcsstypes.c | 15 ++++++++-- + gtk/gtkcsstypesprivate.h | 75 ++++++++++++++++++++++++++++++++---------------- + 2 files changed, 63 insertions(+), 27 deletions(-) + +diff --git a/gtk/gtkcsstypes.c b/gtk/gtkcsstypes.c +index 6ab3bc5..440f60a 100644 +--- a/gtk/gtkcsstypes.c ++++ b/gtk/gtkcsstypes.c +@@ -54,7 +54,10 @@ _gtk_css_change_for_sibling (GtkCssChange match) + static const GtkCssChangeTranslation table[] = { + { GTK_CSS_CHANGE_CLASS, GTK_CSS_CHANGE_SIBLING_CLASS }, + { GTK_CSS_CHANGE_NAME, GTK_CSS_CHANGE_SIBLING_NAME }, +- { GTK_CSS_CHANGE_POSITION, GTK_CSS_CHANGE_SIBLING_POSITION }, ++ { GTK_CSS_CHANGE_FIRST_CHILD, GTK_CSS_CHANGE_SIBLING_FIRST_CHILD }, ++ { GTK_CSS_CHANGE_LAST_CHILD, GTK_CSS_CHANGE_SIBLING_LAST_CHILD }, ++ { GTK_CSS_CHANGE_NTH_CHILD, GTK_CSS_CHANGE_SIBLING_NTH_CHILD }, ++ { GTK_CSS_CHANGE_NTH_LAST_CHILD, GTK_CSS_CHANGE_SIBLING_NTH_LAST_CHILD }, + { GTK_CSS_CHANGE_STATE, GTK_CSS_CHANGE_SIBLING_STATE }, + { GTK_CSS_CHANGE_SOURCE, 0 }, + { GTK_CSS_CHANGE_PARENT_STYLE, 0 } +@@ -69,11 +72,17 @@ _gtk_css_change_for_child (GtkCssChange match) + static const GtkCssChangeTranslation table[] = { + { GTK_CSS_CHANGE_CLASS, GTK_CSS_CHANGE_PARENT_CLASS }, + { GTK_CSS_CHANGE_NAME, GTK_CSS_CHANGE_PARENT_NAME }, +- { GTK_CSS_CHANGE_POSITION, GTK_CSS_CHANGE_PARENT_POSITION }, ++ { GTK_CSS_CHANGE_FIRST_CHILD, GTK_CSS_CHANGE_PARENT_FIRST_CHILD }, ++ { GTK_CSS_CHANGE_LAST_CHILD, GTK_CSS_CHANGE_PARENT_LAST_CHILD }, ++ { GTK_CSS_CHANGE_NTH_CHILD, GTK_CSS_CHANGE_PARENT_NTH_CHILD }, ++ { GTK_CSS_CHANGE_NTH_LAST_CHILD, GTK_CSS_CHANGE_PARENT_NTH_LAST_CHILD }, + { GTK_CSS_CHANGE_STATE, GTK_CSS_CHANGE_PARENT_STATE }, + { GTK_CSS_CHANGE_SIBLING_CLASS, GTK_CSS_CHANGE_PARENT_SIBLING_CLASS }, + { GTK_CSS_CHANGE_SIBLING_NAME, GTK_CSS_CHANGE_PARENT_SIBLING_NAME }, +- { GTK_CSS_CHANGE_SIBLING_POSITION, GTK_CSS_CHANGE_PARENT_SIBLING_POSITION }, ++ { GTK_CSS_CHANGE_SIBLING_FIRST_CHILD, GTK_CSS_CHANGE_PARENT_SIBLING_FIRST_CHILD }, ++ { GTK_CSS_CHANGE_SIBLING_LAST_CHILD, GTK_CSS_CHANGE_PARENT_SIBLING_LAST_CHILD }, ++ { GTK_CSS_CHANGE_SIBLING_NTH_CHILD, GTK_CSS_CHANGE_PARENT_SIBLING_NTH_CHILD }, ++ { GTK_CSS_CHANGE_SIBLING_NTH_LAST_CHILD, GTK_CSS_CHANGE_PARENT_SIBLING_NTH_LAST_CHILD }, + { GTK_CSS_CHANGE_SIBLING_STATE, GTK_CSS_CHANGE_PARENT_SIBLING_STATE }, + { GTK_CSS_CHANGE_SOURCE, 0 }, + { GTK_CSS_CHANGE_PARENT_STYLE, 0 } +diff --git a/gtk/gtkcsstypesprivate.h b/gtk/gtkcsstypesprivate.h +index 2f80491..5466269 100644 +--- a/gtk/gtkcsstypesprivate.h ++++ b/gtk/gtkcsstypesprivate.h +@@ -30,34 +30,61 @@ typedef struct _GtkCssStyle GtkCssStyle; + typedef struct _GtkStyleProviderPrivate GtkStyleProviderPrivate; /* dummy typedef */ + + typedef enum { /*< skip >*/ +- GTK_CSS_CHANGE_CLASS = (1 << 0), +- GTK_CSS_CHANGE_NAME = (1 << 1), +- GTK_CSS_CHANGE_ID = GTK_CSS_CHANGE_NAME, +- GTK_CSS_CHANGE_REGION = GTK_CSS_CHANGE_NAME, +- GTK_CSS_CHANGE_POSITION = (1 << 2), +- GTK_CSS_CHANGE_STATE = (1 << 3), +- GTK_CSS_CHANGE_SIBLING_CLASS = (1 << 4), +- GTK_CSS_CHANGE_SIBLING_NAME = (1 << 5), +- GTK_CSS_CHANGE_SIBLING_POSITION = (1 << 6), +- GTK_CSS_CHANGE_SIBLING_STATE = (1 << 7), +- GTK_CSS_CHANGE_PARENT_CLASS = (1 << 8), +- GTK_CSS_CHANGE_PARENT_NAME = (1 << 9), +- GTK_CSS_CHANGE_PARENT_REGION = GTK_CSS_CHANGE_PARENT_NAME, +- GTK_CSS_CHANGE_PARENT_POSITION = (1 << 10), +- GTK_CSS_CHANGE_PARENT_STATE = (1 << 11), +- GTK_CSS_CHANGE_PARENT_SIBLING_CLASS = (1 << 12), +- GTK_CSS_CHANGE_PARENT_SIBLING_NAME = (1 << 13), +- GTK_CSS_CHANGE_PARENT_SIBLING_POSITION = (1 << 14), +- GTK_CSS_CHANGE_PARENT_SIBLING_STATE = (1 << 15), ++ GTK_CSS_CHANGE_CLASS = (1 << 0), ++ GTK_CSS_CHANGE_NAME = (1 << 1), ++ GTK_CSS_CHANGE_ID = GTK_CSS_CHANGE_NAME, ++ GTK_CSS_CHANGE_REGION = GTK_CSS_CHANGE_NAME, ++ GTK_CSS_CHANGE_FIRST_CHILD = (1 << 2), ++ GTK_CSS_CHANGE_LAST_CHILD = (1 << 3), ++ GTK_CSS_CHANGE_NTH_CHILD = (1 << 4), ++ GTK_CSS_CHANGE_NTH_LAST_CHILD = (1 << 5), ++ GTK_CSS_CHANGE_STATE = (1 << 6), ++ GTK_CSS_CHANGE_SIBLING_CLASS = (1 << 7), ++ GTK_CSS_CHANGE_SIBLING_NAME = (1 << 8), ++ GTK_CSS_CHANGE_SIBLING_FIRST_CHILD = (1 << 9), ++ GTK_CSS_CHANGE_SIBLING_LAST_CHILD = (1 << 10), ++ GTK_CSS_CHANGE_SIBLING_NTH_CHILD = (1 << 11), ++ GTK_CSS_CHANGE_SIBLING_NTH_LAST_CHILD = (1 << 12), ++ GTK_CSS_CHANGE_SIBLING_STATE = (1 << 13), ++ GTK_CSS_CHANGE_PARENT_CLASS = (1 << 14), ++ GTK_CSS_CHANGE_PARENT_NAME = (1 << 15), ++ GTK_CSS_CHANGE_PARENT_REGION = GTK_CSS_CHANGE_PARENT_NAME, ++ GTK_CSS_CHANGE_PARENT_POSITION = (1 << 16), ++ GTK_CSS_CHANGE_PARENT_FIRST_CHILD = (1 << 17), ++ GTK_CSS_CHANGE_PARENT_LAST_CHILD = (1 << 18), ++ GTK_CSS_CHANGE_PARENT_NTH_CHILD = (1 << 19), ++ GTK_CSS_CHANGE_PARENT_NTH_LAST_CHILD = (1 << 20), ++ GTK_CSS_CHANGE_PARENT_STATE = (1 << 21), ++ GTK_CSS_CHANGE_PARENT_SIBLING_CLASS = (1 << 22), ++ GTK_CSS_CHANGE_PARENT_SIBLING_NAME = (1 << 23), ++ GTK_CSS_CHANGE_PARENT_SIBLING_FIRST_CHILD = (1 << 24), ++ GTK_CSS_CHANGE_PARENT_SIBLING_LAST_CHILD = (1 << 25), ++ GTK_CSS_CHANGE_PARENT_SIBLING_NTH_CHILD = (1 << 26), ++ GTK_CSS_CHANGE_PARENT_SIBLING_NTH_LAST_CHILD = (1 << 27), ++ GTK_CSS_CHANGE_PARENT_SIBLING_POSITION = (1 << 28), ++ GTK_CSS_CHANGE_PARENT_SIBLING_STATE = (1 << 29), + /* add more */ +- GTK_CSS_CHANGE_SOURCE = (1 << 16), +- GTK_CSS_CHANGE_PARENT_STYLE = (1 << 17), +- GTK_CSS_CHANGE_TIMESTAMP = (1 << 18), +- GTK_CSS_CHANGE_ANIMATIONS = (1 << 19), ++ GTK_CSS_CHANGE_SOURCE = (1 << 30), ++ GTK_CSS_CHANGE_PARENT_STYLE = (1 << 31), ++ GTK_CSS_CHANGE_TIMESTAMP = (1LL << 32), ++ GTK_CSS_CHANGE_ANIMATIONS = (1LL << 33), + +- GTK_CSS_CHANGE_RESERVED_BIT = (1 << 31) /* Used internally in gtkcssselector.c */ ++ GTK_CSS_CHANGE_RESERVED_BIT = (1LL << 62) /* Used internally in gtkcssselector.c */ + } GtkCssChange; + ++/* if this complains we need to use defines instead of an enum */ ++G_STATIC_ASSERT(sizeof (GtkCssChange) >= 8); ++ ++#define GTK_CSS_CHANGE_POSITION (GTK_CSS_CHANGE_FIRST_CHILD | GTK_CSS_CHANGE_LAST_CHILD | \ ++ GTK_CSS_CHANGE_NTH_CHILD | GTK_CSS_CHANGE_NTH_LAST_CHILD) ++#define GTK_CSS_CHANGE_SIBLING_POSITION (GTK_CSS_CHANGE_SIBLING_FIRST_CHILD | GTK_CSS_CHANGE_SIBLING_LAST_CHILD | \ ++ GTK_CSS_CHANGE_SIBLING_NTH_CHILD | GTK_CSS_CHANGE_SIBLING_NTH_LAST_CHILD) ++#define GTK_CSS_CHANGE_PARENT_POSITION (GTK_CSS_CHANGE_PARENT_FIRST_CHILD | GTK_CSS_CHANGE_PARENT_LAST_CHILD | \ ++ GTK_CSS_CHANGE_PARENT_NTH_CHILD | GTK_CSS_CHANGE_PARENT_NTH_LAST_CHILD) ++#define GTK_CSS_CHANGE_PARENT_SIBLING_POSITION (GTK_CSS_CHANGE_PARENT_SIBLING_FIRST_CHILD | GTK_CSS_CHANGE_PARENT_SIBLING_LAST_CHILD | \ ++ GTK_CSS_CHANGE_PARENT_SIBLING_NTH_CHILD | GTK_CSS_CHANGE_PARENT_SIBLING_NTH_LAST_CHILD) ++ ++ + #define GTK_CSS_CHANGE_ANY ((1 << 19) - 1) + #define GTK_CSS_CHANGE_ANY_SELF (GTK_CSS_CHANGE_CLASS | GTK_CSS_CHANGE_NAME | GTK_CSS_CHANGE_POSITION | GTK_CSS_CHANGE_STATE) + #define GTK_CSS_CHANGE_ANY_SIBLING (GTK_CSS_CHANGE_SIBLING_CLASS | GTK_CSS_CHANGE_SIBLING_NAME | \ +-- +2.4.5 + diff --git a/0159-cssselector-Report-finer-granularity-for-position-ch.patch b/0159-cssselector-Report-finer-granularity-for-position-ch.patch new file mode 100644 index 0000000..417092e --- /dev/null +++ b/0159-cssselector-Report-finer-granularity-for-position-ch.patch @@ -0,0 +1,50 @@ +From 69e396ea0ab6e25ebeb87ee55ea11d3a5c376f44 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte +Date: Mon, 6 Jul 2015 00:21:03 +0200 +Subject: [PATCH 159/193] cssselector: Report finer granularity for position + changes + +--- + gtk/gtkcssselector.c | 26 +++++++++++++++++++++++++- + 1 file changed, 25 insertions(+), 1 deletion(-) + +diff --git a/gtk/gtkcssselector.c b/gtk/gtkcssselector.c +index eae014e..6ad744c 100644 +--- a/gtk/gtkcssselector.c ++++ b/gtk/gtkcssselector.c +@@ -1036,7 +1036,31 @@ comp_pseudoclass_position (const GtkCssSelector *a, + return a->position.b - b->position.b; + } + +-#define GTK_CSS_CHANGE_PSEUDOCLASS_POSITION GTK_CSS_CHANGE_POSITION ++static GtkCssChange ++change_pseudoclass_position (const GtkCssSelector *selector) ++{ ++ switch (selector->position.type) ++ { ++ case POSITION_FORWARD: ++ if (selector->position.a == 0 && selector->position.b == 1) ++ return GTK_CSS_CHANGE_FIRST_CHILD; ++ else ++ return GTK_CSS_CHANGE_NTH_CHILD; ++ case POSITION_BACKWARD: ++ if (selector->position.a == 0 && selector->position.b == 1) ++ return GTK_CSS_CHANGE_LAST_CHILD; ++ else ++ return GTK_CSS_CHANGE_NTH_LAST_CHILD; ++ case POSITION_ONLY: ++ return GTK_CSS_CHANGE_FIRST_CHILD | GTK_CSS_CHANGE_LAST_CHILD; ++ default: ++ g_assert_not_reached (); ++ case POSITION_SORTED: ++ return 0; ++ } ++} ++ ++#define GTK_CSS_CHANGE_PSEUDOCLASS_POSITION change_pseudoclass_position(selector) + DEFINE_SIMPLE_SELECTOR(pseudoclass_position, PSEUDOCLASS_POSITION, print_pseudoclass_position, + match_pseudoclass_position, hash_pseudoclass_position, comp_pseudoclass_position, + FALSE, TRUE, FALSE) +-- +2.4.5 + diff --git a/0160-csstypes-Change-NTH_CHILD-and-NTH_LAST_CHILD-change-.patch b/0160-csstypes-Change-NTH_CHILD-and-NTH_LAST_CHILD-change-.patch new file mode 100644 index 0000000..05043f9 --- /dev/null +++ b/0160-csstypes-Change-NTH_CHILD-and-NTH_LAST_CHILD-change-.patch @@ -0,0 +1,36 @@ +From df7113812bbccc4ad862e1c931c8ba2c94d91c4a Mon Sep 17 00:00:00 2001 +From: Benjamin Otte +Date: Mon, 6 Jul 2015 03:58:56 +0200 +Subject: [PATCH 160/193] csstypes: Change NTH_CHILD and NTH_LAST_CHILD change + propagation + +For now assume that if those flags change for a node, they also changed +for all sibling nodes. This is not strictly true but simplifies +invalidation. + +The reason it simplifies invalidation is that when removing or adding a +node, we can just invalidate the first node (for NTH_LAST_CHILD) and the +new node (for NTH_CHILD) and all the other nodes will be invalidated +automatically. +--- + gtk/gtkcsstypes.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gtk/gtkcsstypes.c b/gtk/gtkcsstypes.c +index 440f60a..2fa18df 100644 +--- a/gtk/gtkcsstypes.c ++++ b/gtk/gtkcsstypes.c +@@ -56,8 +56,8 @@ _gtk_css_change_for_sibling (GtkCssChange match) + { GTK_CSS_CHANGE_NAME, GTK_CSS_CHANGE_SIBLING_NAME }, + { GTK_CSS_CHANGE_FIRST_CHILD, GTK_CSS_CHANGE_SIBLING_FIRST_CHILD }, + { GTK_CSS_CHANGE_LAST_CHILD, GTK_CSS_CHANGE_SIBLING_LAST_CHILD }, +- { GTK_CSS_CHANGE_NTH_CHILD, GTK_CSS_CHANGE_SIBLING_NTH_CHILD }, +- { GTK_CSS_CHANGE_NTH_LAST_CHILD, GTK_CSS_CHANGE_SIBLING_NTH_LAST_CHILD }, ++ { GTK_CSS_CHANGE_NTH_CHILD, GTK_CSS_CHANGE_NTH_CHILD | GTK_CSS_CHANGE_SIBLING_NTH_CHILD }, ++ { GTK_CSS_CHANGE_NTH_LAST_CHILD, GTK_CSS_CHANGE_NTH_LAST_CHILD | GTK_CSS_CHANGE_SIBLING_NTH_LAST_CHILD }, + { GTK_CSS_CHANGE_STATE, GTK_CSS_CHANGE_SIBLING_STATE }, + { GTK_CSS_CHANGE_SOURCE, 0 }, + { GTK_CSS_CHANGE_PARENT_STYLE, 0 } +-- +2.4.5 + diff --git a/0161-cssnode-Do-finer-grained-position-invalidation.patch b/0161-cssnode-Do-finer-grained-position-invalidation.patch new file mode 100644 index 0000000..7c9500d --- /dev/null +++ b/0161-cssnode-Do-finer-grained-position-invalidation.patch @@ -0,0 +1,74 @@ +From 8d3737e4e376bc6dcd4d581cbd34aa2ae3396c59 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte +Date: Mon, 6 Jul 2015 04:29:09 +0200 +Subject: [PATCH 161/193] cssnode: Do finer-grained position invalidation + +As a side effect, this should fix this bug: + +https://bugzilla.gnome.org/show_bug.cgi?id=751910 +--- + gtk/gtkcssnode.c | 31 ++++++++++++++++++++++++++----- + 1 file changed, 26 insertions(+), 5 deletions(-) + +diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c +index 50c3891..29301eb 100644 +--- a/gtk/gtkcssnode.c ++++ b/gtk/gtkcssnode.c +@@ -643,15 +643,22 @@ gtk_css_node_reposition (GtkCssNode *node, + /* Take a reference here so the whole function has a reference */ + g_object_ref (node); + +- if (node->next_sibling) ++ if (node->visible) + { +- if (node->visible) +- gtk_css_node_invalidate (node->next_sibling, GTK_CSS_CHANGE_POSITION | GTK_CSS_CHANGE_ANY_SIBLING); ++ if (node->next_sibling) ++ gtk_css_node_invalidate (node->next_sibling, ++ GTK_CSS_CHANGE_ANY_SIBLING ++ | GTK_CSS_CHANGE_NTH_CHILD ++ | (node->previous_sibling ? 0 : GTK_CSS_CHANGE_FIRST_CHILD)); ++ else if (node->previous_sibling) ++ gtk_css_node_invalidate (node->previous_sibling, GTK_CSS_CHANGE_LAST_CHILD); + } + + if (old_parent != NULL) + { + g_signal_emit (old_parent, cssnode_signals[NODE_REMOVED], 0, node, node->previous_sibling); ++ if (old_parent->first_child) ++ gtk_css_node_invalidate (old_parent->first_child, GTK_CSS_CHANGE_NTH_LAST_CHILD); + } + + if (old_parent != new_parent) +@@ -687,12 +694,26 @@ gtk_css_node_reposition (GtkCssNode *node, + if (new_parent) + { + g_signal_emit (new_parent, cssnode_signals[NODE_ADDED], 0, node, previous); ++ gtk_css_node_invalidate (new_parent->first_child, GTK_CSS_CHANGE_NTH_LAST_CHILD); + } + + if (node->next_sibling) +- gtk_css_node_invalidate_style (node->next_sibling); ++ { ++ if (node->previous_sibling == NULL) ++ gtk_css_node_invalidate (node->next_sibling, GTK_CSS_CHANGE_FIRST_CHILD); ++ else ++ gtk_css_node_invalidate_style (node->next_sibling); ++ } ++ else if (node->previous_sibling) ++ { ++ gtk_css_node_invalidate (node->previous_sibling, GTK_CSS_CHANGE_LAST_CHILD); ++ } + +- gtk_css_node_invalidate (node, GTK_CSS_CHANGE_ANY_PARENT | GTK_CSS_CHANGE_POSITION | GTK_CSS_CHANGE_ANY_SIBLING); ++ gtk_css_node_invalidate (node, GTK_CSS_CHANGE_ANY_PARENT ++ | GTK_CSS_CHANGE_ANY_SIBLING ++ | GTK_CSS_CHANGE_NTH_CHILD ++ | (node->previous_sibling ? 0 : GTK_CSS_CHANGE_FIRST_CHILD) ++ | (node->next_sibling ? 0 : GTK_CSS_CHANGE_LAST_CHILD)); + + g_object_unref (node); + } +-- +2.4.5 + diff --git a/0186-Simplify-Xft-setting-fallback.patch b/0186-Simplify-Xft-setting-fallback.patch new file mode 100644 index 0000000..3535f38 --- /dev/null +++ b/0186-Simplify-Xft-setting-fallback.patch @@ -0,0 +1,38 @@ +From bdf0820c501437a2150d8ff0d5340246e713f73f Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +Date: Tue, 7 Jul 2015 20:39:45 -0400 +Subject: [PATCH 186/193] Simplify Xft setting fallback + +If we don't find Xft values in the X resource db, simply fall +back to the values that are hardcoded in /etc/X11/Xresources +anyway. Extra trickery with likely-made-up screen dimensions +is not going to yield better results, and only makes for a +deeper rabbit hole when debugging. +--- + gdk/x11/gdkxftdefaults.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/gdk/x11/gdkxftdefaults.c b/gdk/x11/gdkxftdefaults.c +index 5f4a3f2..fa1cfde 100644 +--- a/gdk/x11/gdkxftdefaults.c ++++ b/gdk/x11/gdkxftdefaults.c +@@ -168,14 +168,13 @@ init_xft_settings (GdkScreen *screen) + x11_screen->xft_hinting = b; + + if (!get_integer_default (xdisplay, "hintstyle", &x11_screen->xft_hintstyle)) +- x11_screen->xft_hintstyle = FC_HINT_FULL; ++ x11_screen->xft_hintstyle = FC_HINT_MEDIUM; + + if (!get_integer_default (xdisplay, "rgba", &x11_screen->xft_rgba)) + x11_screen->xft_rgba = FC_RGBA_UNKNOWN; + + if (!get_double_default (xdisplay, "dpi", &dpi_double)) +- dpi_double = (((double) DisplayHeight (xdisplay, x11_screen->screen_num) * 25.4) / +- (double) DisplayHeightMM (xdisplay, x11_screen->screen_num)); ++ dpi_double = 96.0; + + x11_screen->xft_dpi = (int)(0.5 + PANGO_SCALE * dpi_double); + } +-- +2.4.5 + diff --git a/gtk3.spec b/gtk3.spec index 3a28879..5c933e4 100644 --- a/gtk3.spec +++ b/gtk3.spec @@ -18,13 +18,21 @@ Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X Name: gtk3 Version: 3.17.4 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Group: System Environment/Libraries URL: http://www.gtk.org #VCS: git:git://git.gnome.org/gtk+ Source: http://download.gnome.org/sources/gtk+/3.17/gtk+-%{version}.tar.xz +# These are all post-3.17.4 upstream backports, can be dropped with 3.17.5 +# First four fix https://bugzilla.gnome.org/show_bug.cgi?id=752247 +# Last one helps with https://bugzilla.redhat.com/show_bug.cgi?id=1241724 +Patch0: 0158-csstypes-expand-GtkCssChange-enum.patch +Patch1: 0159-cssselector-Report-finer-granularity-for-position-ch.patch +Patch2: 0160-csstypes-Change-NTH_CHILD-and-NTH_LAST_CHILD-change-.patch +Patch3: 0161-cssnode-Do-finer-grained-position-invalidation.patch +Patch4: 0186-Simplify-Xft-setting-fallback.patch BuildRequires: gnome-common autoconf automake intltool gettext BuildRequires: pkgconfig(atk) >= %{atk_version} @@ -163,6 +171,12 @@ the functionality of the installed %{name} package. %prep %setup -q -n gtk+-%{version} +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 + %build @@ -350,6 +364,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/installed-tests %changelog +* Mon Jul 13 2015 Adam Williamson - 3.17.4-2 +- backport upstream CSS changes to fix BGO #752247 +- backport upstream font default changes to help with RHBZ #1241724 + * Wed Jun 24 2015 David King - 3.17.4-1 - Update to 3.17.4