From 5d225ca015906609c9e004ce0df920cacd07a993 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 5 Nov 2019 14:44:25 -0500 Subject: [PATCH] import gtk3-3.22.30-4.el8 --- ...ndow-management-buttons-in-headerbar.patch | 290 ++++++++++++++++++ SPECS/gtk3.spec | 8 +- 2 files changed, 297 insertions(+), 1 deletion(-) create mode 100644 SOURCES/0001-a11y-Include-window-management-buttons-in-headerbar.patch diff --git a/SOURCES/0001-a11y-Include-window-management-buttons-in-headerbar.patch b/SOURCES/0001-a11y-Include-window-management-buttons-in-headerbar.patch new file mode 100644 index 0000000..1907e55 --- /dev/null +++ b/SOURCES/0001-a11y-Include-window-management-buttons-in-headerbar.patch @@ -0,0 +1,290 @@ +From bc1c0584b76e19d5d65bfa2ae809f95113e53c83 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte +Date: Sun, 21 Jul 2019 23:15:00 +0200 +Subject: [PATCH] a11y: Include window management buttons in headerbar + +--- + gtk/a11y/Makefile.inc | 2 + + gtk/a11y/gtkheaderbaraccessible.c | 87 +++++++++++++++++++++++++++++++ + gtk/a11y/gtkheaderbaraccessible.h | 55 +++++++++++++++++++ + gtk/gtkcontainerprivate.h | 1 + + gtk/gtkheaderbar.c | 3 +- + 6 files changed, 149 insertions(+), 1 deletion(-) + create mode 100644 gtk/a11y/gtkheaderbaraccessible.c + create mode 100644 gtk/a11y/gtkheaderbaraccessible.h + +diff --git a/gtk/a11y/Makefile.inc b/gtk/a11y/Makefile.inc +index 8529c7ae57..3ed6c5decd 100644 +--- a/gtk/a11y/Makefile.inc ++++ b/gtk/a11y/Makefile.inc +@@ -14,6 +14,7 @@ a11y_h_sources = \ + a11y/gtkflowboxaccessible.h \ + a11y/gtkflowboxchildaccessible.h \ + a11y/gtkframeaccessible.h \ ++ a11y/gtkheaderbaraccessible.h \ + a11y/gtkiconviewaccessible.h \ + a11y/gtkimageaccessible.h \ + a11y/gtkimagecellaccessible.h \ +@@ -88,6 +89,7 @@ a11y_c_sources = \ + a11y/gtkflowboxaccessible.c \ + a11y/gtkflowboxchildaccessible.c \ + a11y/gtkframeaccessible.c \ ++ a11y/gtkheaderbaraccessible.c \ + a11y/gtkiconviewaccessible.c \ + a11y/gtkimageaccessible.c \ + a11y/gtkimagecellaccessible.c \ +--- a/gtk/Makefile.in ++++ b/gtk/Makefile.in +@@ -281,6 +281,7 @@ + a11y/gtkcontainercellaccessible.c a11y/gtkentryaccessible.c \ + a11y/gtkexpanderaccessible.c a11y/gtkflowboxaccessible.c \ + a11y/gtkflowboxchildaccessible.c a11y/gtkframeaccessible.c \ ++ a11y/gtkheaderbaraccessible.c \ + a11y/gtkiconviewaccessible.c a11y/gtkimageaccessible.c \ + a11y/gtkimagecellaccessible.c a11y/gtklabelaccessible.c \ + a11y/gtklevelbaraccessible.c a11y/gtklinkbuttonaccessible.c \ +@@ -487,6 +488,7 @@ + a11y/libgtk_3_la-gtkflowboxaccessible.lo \ + a11y/libgtk_3_la-gtkflowboxchildaccessible.lo \ + a11y/libgtk_3_la-gtkframeaccessible.lo \ ++ a11y/libgtk_3_la-gtkheaderbaraccessible.lo \ + a11y/libgtk_3_la-gtkiconviewaccessible.lo \ + a11y/libgtk_3_la-gtkimageaccessible.lo \ + a11y/libgtk_3_la-gtkimagecellaccessible.lo \ +@@ -1389,6 +1391,7 @@ + a11y/gtkflowboxaccessible.h \ + a11y/gtkflowboxchildaccessible.h \ + a11y/gtkframeaccessible.h \ ++ a11y/gtkheaderbaraccessible.h \ + a11y/gtkiconviewaccessible.h \ + a11y/gtkimageaccessible.h \ + a11y/gtkimagecellaccessible.h \ +@@ -1463,6 +1466,7 @@ + a11y/gtkflowboxaccessible.c \ + a11y/gtkflowboxchildaccessible.c \ + a11y/gtkframeaccessible.c \ ++ a11y/gtkheaderbaraccessible.c \ + a11y/gtkiconviewaccessible.c \ + a11y/gtkimageaccessible.c \ + a11y/gtkimagecellaccessible.c \ +@@ -2702,6 +2706,8 @@ + a11y/$(DEPDIR)/$(am__dirstamp) + a11y/libgtk_3_la-gtkframeaccessible.lo: a11y/$(am__dirstamp) \ + a11y/$(DEPDIR)/$(am__dirstamp) ++a11y/libgtk_3_la-gtkheaderbaraccessible.lo: a11y/$(am__dirstamp) \ ++ a11y/$(DEPDIR)/$(am__dirstamp) + a11y/libgtk_3_la-gtkiconviewaccessible.lo: a11y/$(am__dirstamp) \ + a11y/$(DEPDIR)/$(am__dirstamp) + a11y/libgtk_3_la-gtkimageaccessible.lo: a11y/$(am__dirstamp) \ +@@ -3447,6 +3453,7 @@ + @AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxaccessible.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxchildaccessible.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkframeaccessible.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkheaderbaraccessible.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkiconviewaccessible.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkimageaccessible.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkimagecellaccessible.Plo@am__quote@ +@@ -3705,6 +3712,13 @@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -c -o a11y/libgtk_3_la-gtkframeaccessible.lo `test -f 'a11y/gtkframeaccessible.c' || echo '$(srcdir)/'`a11y/gtkframeaccessible.c + ++a11y/libgtk_3_la-gtkheaderbaraccessible.lo: a11y/gtkheaderbaraccessible.c ++@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -MT a11y/libgtk_3_la-gtkheaderbaraccessible.lo -MD -MP -MF a11y/$(DEPDIR)/libgtk_3_la-gtkheaderbaraccessible.Tpo -c -o a11y/libgtk_3_la-gtkheaderbaraccessible.lo `test -f 'a11y/gtkheaderbaraccessible.c' || echo '$(srcdir)/'`a11y/gtkheaderbaraccessible.c ++@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) a11y/$(DEPDIR)/libgtk_3_la-gtkheaderbaraccessible.Tpo a11y/$(DEPDIR)/libgtk_3_la-gtkheaderbaraccessible.Plo ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='a11y/gtkheaderbaraccessible.c' object='a11y/libgtk_3_la-gtkheaderbaraccessible.lo' libtool=yes @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -c -o a11y/libgtk_3_la-gtkheaderbaraccessible.lo `test -f 'a11y/gtkheaderbaraccessible.c' || echo '$(srcdir)/'`a11y/gtkheaderbaraccessible.c ++ + a11y/libgtk_3_la-gtkiconviewaccessible.lo: a11y/gtkiconviewaccessible.c + @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -MT a11y/libgtk_3_la-gtkiconviewaccessible.lo -MD -MP -MF a11y/$(DEPDIR)/libgtk_3_la-gtkiconviewaccessible.Tpo -c -o a11y/libgtk_3_la-gtkiconviewaccessible.lo `test -f 'a11y/gtkiconviewaccessible.c' || echo '$(srcdir)/'`a11y/gtkiconviewaccessible.c + @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) a11y/$(DEPDIR)/libgtk_3_la-gtkiconviewaccessible.Tpo a11y/$(DEPDIR)/libgtk_3_la-gtkiconviewaccessible.Plo +diff --git a/gtk/a11y/gtkheaderbaraccessible.c b/gtk/a11y/gtkheaderbaraccessible.c +new file mode 100644 +index 0000000000..3610ac0d1f +--- /dev/null ++++ b/gtk/a11y/gtkheaderbaraccessible.c +@@ -0,0 +1,87 @@ ++/* GTK+ - accessibility implementations ++ * Copyright 2001, 2002, 2003 Sun Microsystems Inc. ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library. If not, see . ++ */ ++ ++#include "config.h" ++ ++#include "gtkheaderbaraccessible.h" ++ ++#include "gtkcontainerprivate.h" ++ ++G_DEFINE_TYPE (GtkHeaderBarAccessible, gtk_header_bar_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE) ++ ++static void ++count_widget (GtkWidget *widget, ++ gint *count) ++{ ++ (*count)++; ++} ++ ++static gint ++gtk_header_bar_accessible_get_n_children (AtkObject* obj) ++{ ++ GtkWidget *widget; ++ gint count = 0; ++ ++ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj)); ++ if (widget == NULL) ++ return 0; ++ ++ gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) count_widget, &count); ++ return count; ++} ++ ++static AtkObject * ++gtk_header_bar_accessible_ref_child (AtkObject *obj, ++ gint i) ++{ ++ GList *children, *tmp_list; ++ AtkObject *accessible; ++ GtkWidget *widget; ++ ++ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj)); ++ if (widget == NULL) ++ return NULL; ++ ++ children = gtk_container_get_all_children (GTK_CONTAINER (widget)); ++ tmp_list = g_list_nth (children, i); ++ if (!tmp_list) ++ { ++ g_list_free (children); ++ return NULL; ++ } ++ accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data)); ++ ++ g_list_free (children); ++ g_object_ref (accessible); ++ ++ return accessible; ++} ++ ++static void ++gtk_header_bar_accessible_class_init (GtkHeaderBarAccessibleClass *klass) ++{ ++ AtkObjectClass *class = ATK_OBJECT_CLASS (klass); ++ ++ class->get_n_children = gtk_header_bar_accessible_get_n_children; ++ class->ref_child = gtk_header_bar_accessible_ref_child; ++} ++ ++static void ++gtk_header_bar_accessible_init (GtkHeaderBarAccessible *header_bar) ++{ ++} ++ +diff --git a/gtk/a11y/gtkheaderbaraccessible.h b/gtk/a11y/gtkheaderbaraccessible.h +new file mode 100644 +index 0000000000..fca9428a94 +--- /dev/null ++++ b/gtk/a11y/gtkheaderbaraccessible.h +@@ -0,0 +1,55 @@ ++/* GTK+ - accessibility implementations ++ * Copyright 2001, 2002, 2003 Sun Microsystems Inc. ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public ++ * License along with this library. If not, see . ++ */ ++ ++#ifndef __GTK_HEADER_BAR_ACCESSIBLE_H__ ++#define __GTK_HEADER_BAR_ACCESSIBLE_H__ ++ ++#if !defined (__GTK_A11Y_H_INSIDE__) && !defined (GTK_COMPILATION) ++#error "Only can be included directly." ++#endif ++ ++#include ++ ++G_BEGIN_DECLS ++ ++#define GTK_TYPE_HEADER_BAR_ACCESSIBLE (gtk_header_bar_accessible_get_type ()) ++#define GTK_HEADER_BAR_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_HEADER_BAR_ACCESSIBLE, GtkHeaderBarAccessible)) ++#define GTK_HEADER_BAR_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_HEADER_BAR_ACCESSIBLE, GtkHeaderBarAccessibleClass)) ++#define GTK_IS_HEADER_BAR_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_HEADER_BAR_ACCESSIBLE)) ++#define GTK_IS_HEADER_BAR_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_HEADER_BAR_ACCESSIBLE)) ++#define GTK_HEADER_BAR_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_HEADER_BAR_ACCESSIBLE, GtkHeaderBarAccessibleClass)) ++ ++typedef struct _GtkHeaderBarAccessible GtkHeaderBarAccessible; ++typedef struct _GtkHeaderBarAccessibleClass GtkHeaderBarAccessibleClass; ++typedef struct _GtkHeaderBarAccessiblePrivate GtkHeaderBarAccessiblePrivate; ++ ++struct _GtkHeaderBarAccessible ++{ ++ GtkContainerAccessible parent; ++}; ++ ++struct _GtkHeaderBarAccessibleClass ++{ ++ GtkContainerAccessibleClass parent_class; ++}; ++ ++GDK_AVAILABLE_IN_ALL ++GType gtk_header_bar_accessible_get_type (void); ++ ++G_END_DECLS ++ ++#endif /* __GTK_HEADER_BAR_ACCESSIBLE_H__ */ +diff --git a/gtk/gtkcontainerprivate.h b/gtk/gtkcontainerprivate.h +index 7402a6676b..547e0295c3 100644 +--- a/gtk/gtkcontainerprivate.h ++++ b/gtk/gtkcontainerprivate.h +@@ -42,6 +42,7 @@ void _gtk_container_maybe_start_idle_sizer (GtkContainer *container); + gboolean _gtk_container_get_border_width_set (GtkContainer *container); + void _gtk_container_set_border_width_set (GtkContainer *container, + gboolean border_width_set); ++GList * gtk_container_get_all_children (GtkContainer *container); + void gtk_container_get_children_clip (GtkContainer *container, + GtkAllocation *out_clip); + void gtk_container_set_default_resize_mode (GtkContainer *container, +diff --git a/gtk/gtkheaderbar.c b/gtk/gtkheaderbar.c +index dd7d2093c9..0ef94e3c84 100644 +--- a/gtk/gtkheaderbar.c ++++ b/gtk/gtkheaderbar.c +@@ -30,7 +30,7 @@ + #include "gtkwindowprivate.h" + #include "gtkwidgetprivate.h" + #include "gtkcontainerprivate.h" +-#include "a11y/gtkcontaineraccessible.h" ++#include "a11y/gtkheaderbaraccessible.h" + + #include + +@@ -2118,6 +2118,7 @@ gtk_header_bar_class_init (GtkHeaderBarClass *class) + + g_object_class_install_properties (object_class, LAST_PROP, header_bar_props); + ++ gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_HEADER_BAR_ACCESSIBLE); + gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_PANEL); + gtk_widget_class_set_css_name (widget_class, "headerbar"); + } +-- +2.21.0 + diff --git a/SPECS/gtk3.spec b/SPECS/gtk3.spec index 1cee05c..d5a57d6 100644 --- a/SPECS/gtk3.spec +++ b/SPECS/gtk3.spec @@ -22,7 +22,7 @@ Name: gtk3 Version: 3.22.30 -Release: 3%{?dist} +Release: 4%{?dist} Summary: GTK+ graphical user interface library License: LGPLv2+ @@ -32,6 +32,8 @@ Source0: http://download.gnome.org/sources/gtk+/3.22/gtk+-%{version}.tar.xz # rhbz#1656447 / https://gitlab.gnome.org/GNOME/gtk/issues/1507 Patch1: 0001-a11y-Check-X11-display-at-runtime.patch Patch2: 0001-a11y-Check-display-in-grab_cell_focus.patch +# ehbz#1723836 +Patch3: 0001-a11y-Include-window-management-buttons-in-headerbar.patch BuildRequires: pkgconfig(atk) >= %{atk_version} BuildRequires: pkgconfig(atk-bridge-2.0) @@ -173,6 +175,7 @@ the functionality of the installed %{name} package. %setup -q -n gtk+-%{version} %patch1 -p1 %patch2 -p1 +%patch3 -p1 %build export CFLAGS='-fno-strict-aliasing %optflags' @@ -331,6 +334,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || : %{_datadir}/installed-tests %changelog +* Thu Aug 15 2019 Benjamin Otte - 3.22.30-4 +- Include headerbar buttons in accessibility (rhbz#1723836) + * Mon Jan 14 2019 Olivier Fourdan - 3.22.30-3 - Fix a couple of crashes when using the accessibility interface under Wayland (rhbz#1656447)