File gtkhtml-a11y-refactor.patch of Package gtkhtml
From bf664ecd0d8d76490f42f080ad64b5b3dbeeeabf Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com>
Date: Tue, 8 Jan 2013 03:09:58 +0100
Subject: [PATCH] Adjust to gtk+ a11y changes
https://bugzilla.gnome.org/show_bug.cgi?id=669441
---
a11y/Makefile.am | 2 --
a11y/factory.c | 64 -------------------------------------------------------
a11y/factory.h | 29 -------------------------
a11y/object.c | 55 +++++++++++++++--------------------------------
a11y/object.h | 5 +++--
configure.ac | 2 +-
gtkhtml/gtkhtml.c | 4 ++--
7 files changed, 23 insertions(+), 138 deletions(-)
delete mode 100644 a11y/factory.c
delete mode 100644 a11y/factory.h
diff --git a/a11y/Makefile.am b/a11y/Makefile.am
index 64bfdba..b9702e7 100644
--- a/a11y/Makefile.am
+++ b/a11y/Makefile.am
@@ -9,8 +9,6 @@ noinst_LTLIBRARIES = libgtkhtml-a11y.la
libgtkhtml_a11y_la_SOURCES = \
cell.h \
cell.c \
- factory.h \
- factory.c \
html.h \
html.c \
hyperlink.h \
diff --git a/a11y/factory.c b/a11y/factory.c
deleted file mode 100644
index 4604d95..0000000
--- a/a11y/factory.c
+++ /dev/null
@@ -1,64 +0,0 @@
-#include <atk/atkobjectfactory.h>
-
-#include "gtkhtml.h"
-#include "factory.h"
-#include "object.h"
-
-static GType
-gtk_html_a11y_factory_get_accessible_type (void)
-{
- return G_TYPE_GTK_HTML_A11Y;
-}
-
-static AtkObject *
-gtk_html_a11y_factory_create_accessible (GObject *obj)
-{
- GtkWidget *widget;
- AtkObject *accessible;
-
- g_return_val_if_fail (GTK_IS_WIDGET (obj), NULL);
-
- widget = GTK_WIDGET (obj);
-
- accessible = gtk_html_a11y_new (widget);
-
- return accessible;
-}
-
-static void
-gtk_html_a11y_factory_class_init (AtkObjectFactoryClass *klass)
-{
- klass->create_accessible = gtk_html_a11y_factory_create_accessible;
- klass->get_accessible_type = gtk_html_a11y_factory_get_accessible_type;
-}
-
-static GType
-gtk_html_a11y_factory_get_type (void)
-{
- static GType t = 0;
-
- if (!t) {
- static const GTypeInfo tinfo = {
- sizeof (AtkObjectFactoryClass),
- NULL, NULL, (GClassInitFunc) gtk_html_a11y_factory_class_init,
- NULL, NULL, sizeof (AtkObjectFactory), 0, NULL, NULL
- };
-
- t = g_type_register_static (ATK_TYPE_OBJECT_FACTORY, "GtkHTMLA11YNFactory", &tinfo, 0);
- }
- return t;
-}
-
-static gint accessibility_initialized = FALSE;
-
-void
-gtk_html_accessibility_init (void)
-{
- if (accessibility_initialized)
- return;
-
- if (atk_get_root ())
- atk_registry_set_factory_type (atk_get_default_registry (), GTK_TYPE_HTML, gtk_html_a11y_factory_get_type ());
-
- accessibility_initialized = TRUE;
-}
diff --git a/a11y/factory.h b/a11y/factory.h
deleted file mode 100644
index a297662..0000000
--- a/a11y/factory.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* This file is part of the GtkHTML library.
- *
- * Copyright 2002 Ximian, Inc.
- *
- * Author: Radek Doulik
- *
- *
- * 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; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef __GTK_HTML_A11Y_FACTORY_H__
-#define __GTK_HTML_A11Y_FACTORY_H__
-
-void gtk_html_accessibility_init (void);
-
-#endif
diff --git a/a11y/object.c b/a11y/object.c
index 207dc53..6ec52af 100644
--- a/a11y/object.c
+++ b/a11y/object.c
@@ -35,8 +35,10 @@
static void gtk_html_a11y_class_init (GtkHTMLA11YClass *klass);
static void gtk_html_a11y_init (GtkHTMLA11Y *a11y);
+static void gtk_html_a11y_initialize (AtkObject *obj,
+ gpointer data);
-static GtkAccessibleClass *parent_class = NULL;
+static GtkContainerAccessibleClass *parent_class = NULL;
static gint
get_n_actions (AtkAction *action)
@@ -129,21 +131,7 @@ gtk_html_a11y_get_type (void)
NULL
};
- /*
- * Figure out the size of the class and instance
- * we are deriving from
- */
- AtkObjectFactory *factory;
- GTypeQuery query;
- GType derived_atk_type;
-
- factory = atk_registry_get_factory (atk_get_default_registry (), GTK_TYPE_WIDGET);
- derived_atk_type = atk_object_factory_get_accessible_type (factory);
- g_type_query (derived_atk_type, &query);
- tinfo.class_size = query.class_size;
- tinfo.instance_size = query.instance_size;
-
- type = g_type_register_static (derived_atk_type, "GtkHTMLA11Y", &tinfo, 0);
+ type = g_type_register_static (GTK_TYPE_CONTAINER_ACCESSIBLE, "GtkHTMLA11Y", &tinfo, 0);
g_type_add_interface_static (type, ATK_TYPE_ACTION, &atk_action_info);
}
@@ -157,18 +145,6 @@ gtk_html_a11y_finalize (GObject *obj)
G_OBJECT_CLASS (parent_class)->finalize (obj);
}
-static void
-gtk_html_a11y_initialize (AtkObject *obj,
- gpointer data)
-{
- /* printf ("gtk_html_a11y_initialize\n"); */
-
- if (ATK_OBJECT_CLASS (parent_class)->initialize)
- ATK_OBJECT_CLASS (parent_class)->initialize (obj, data);
-
- g_object_set_data (G_OBJECT (obj), GTK_HTML_ID, data);
-}
-
static gint
gtk_html_a11y_get_n_children (AtkObject *accessible)
{
@@ -386,22 +362,27 @@ gtk_html_a11y_delete_object_cb (GtkWidget *widget,
}
}
-AtkObject *
-gtk_html_a11y_new (GtkWidget *widget)
+static void
+gtk_html_a11y_initialize (AtkObject *obj,
+ gpointer data)
{
+ GtkWidget *widget;
GtkHTML *html;
- GObject *object;
AtkObject *accessible;
AtkObject *focus_object = NULL;
- g_return_val_if_fail (GTK_IS_HTML (widget), NULL);
+ /* printf ("gtk_html_a11y_initialize\n"); */
+
+ if (ATK_OBJECT_CLASS (parent_class)->initialize)
+ ATK_OBJECT_CLASS (parent_class)->initialize (obj, data);
+
+ g_object_set_data (G_OBJECT (obj), GTK_HTML_ID, data);
- object = g_object_new (G_TYPE_GTK_HTML_A11Y, NULL);
+ obj->role = ATK_ROLE_PANEL;
- accessible = ATK_OBJECT (object);
- atk_object_initialize (accessible, widget);
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ accessible = ATK_OBJECT (obj);
- accessible->role = ATK_ROLE_PANEL;
g_signal_connect (widget, "grab_focus",
G_CALLBACK (gtk_html_a11y_grab_focus_cb),
NULL);
@@ -426,6 +407,4 @@ gtk_html_a11y_new (GtkWidget *widget)
gtk_html_a11y_focus_object = focus_object;
atk_focus_tracker_notify (focus_object);
}
-
- return accessible;
}
diff --git a/a11y/object.h b/a11y/object.h
index 5d71712..09f4c2d 100644
--- a/a11y/object.h
+++ b/a11y/object.h
@@ -25,6 +25,7 @@
#define __GTK_HTML_A11Y_OBJECT_H__
#include <gtk/gtk.h>
+#include <gtk/gtk-a11y.h>
#define G_TYPE_GTK_HTML_A11Y (gtk_html_a11y_get_type ())
#define GTK_HTML_A11Y(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_GTK_HTML_A11Y, GtkHTMLA11Y))
@@ -42,14 +43,14 @@ typedef struct _GtkHTMLA11YClass GtkHTMLA11YClass;
struct _GtkHTMLA11Y
{
- GtkAccessible parent;
+ GtkContainerAccessible parent;
};
GType gtk_html_a11y_get_type (void);
struct _GtkHTMLA11YClass
{
- GtkAccessibleClass parent_class;
+ GtkContainerAccessibleClass parent_class;
};
AtkObject * gtk_html_a11y_new (GtkWidget *widget);
diff --git a/configure.ac b/configure.ac
index 54bb902..d73c692 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ AC_CONFIG_SRCDIR(README)
PACKAGE=gtkhtml
dnl Required Package Versions
-m4_define([gtk_minimum_version], [3.0.2])
+m4_define([gtk_minimum_version], [3.2.0])
m4_define([enchant_minimum_version], [1.1.7])
m4_define([gnome_icon_theme_minimum_version], [2.22.0])
m4_define([cairo_minimum_version], [1.10.0])
diff --git a/gtkhtml/gtkhtml.c b/gtkhtml/gtkhtml.c
index 8d8f820..861200c 100644
--- a/gtkhtml/gtkhtml.c
+++ b/gtkhtml/gtkhtml.c
@@ -26,7 +26,7 @@
#include <glib/gi18n-lib.h>
#include <string.h>
-#include "../a11y/factory.h"
+#include "../a11y/object.h"
#include "htmlcolorset.h"
#include "htmlcluev.h"
@@ -3270,7 +3270,7 @@ gtk_html_class_init (GtkHTMLClass *klass)
html_class->properties = gtk_html_class_properties_new ();
add_bindings (klass);
- gtk_html_accessibility_init ();
+ gtk_widget_class_set_accessible_type (widget_class, G_TYPE_GTK_HTML_A11Y);
filename = g_build_filename (PREFIX, "share", GTKHTML_RELEASE_STRING, "keybindingsrc.emacs", NULL);
gtk_rc_parse (filename);
--- gtkhtml-4.6.6.orig/a11y/Makefile.in 2013-07-23 12:52:02.000000000 -0500
+++ gtkhtml-4.6.6/a11y/Makefile.in 2014-02-26 17:10:44.660763437 -0600
@@ -68,7 +68,7 @@
LTLIBRARIES = $(noinst_LTLIBRARIES)
libgtkhtml_a11y_la_LIBADD =
am__objects_1 =
-am_libgtkhtml_a11y_la_OBJECTS = cell.lo factory.lo html.lo \
+am_libgtkhtml_a11y_la_OBJECTS = cell.lo html.lo \
hyperlink.lo image.lo object.lo paragraph.lo table.lo text.lo \
utils.lo $(am__objects_1)
libgtkhtml_a11y_la_OBJECTS = $(am_libgtkhtml_a11y_la_OBJECTS)
@@ -308,8 +308,6 @@
libgtkhtml_a11y_la_SOURCES = \
cell.h \
cell.c \
- factory.h \
- factory.c \
html.h \
html.c \
hyperlink.h \
@@ -383,7 +381,6 @@
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cell.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/factory.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/html.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hyperlink.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/image.Plo@am__quote@