From 24e8b484e034b760a3fc3615f8de328fac33376e Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 28 May 2020 14:02:04 +0100 Subject: [PATCH] a11y: Simplify GtkWindowAccessible Have GtkWindow notify of title changes, instead of overriding GtkWidgetAccessible.notify_gtk. --- gtk/a11y/gtkwindowaccessible.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/gtk/a11y/gtkwindowaccessible.c b/gtk/a11y/gtkwindowaccessible.c index b25eeffb96..6485cf8e69 100644 --- a/gtk/a11y/gtkwindowaccessible.c +++ b/gtk/a11y/gtkwindowaccessible.c @@ -61,19 +61,14 @@ gtk_window_accessible_focus_event (AtkObject *obj, } static void -gtk_window_accessible_notify_gtk (GObject *obj, - GParamSpec *pspec) +on_title_changed (GObject *gobject, + GParamSpec *pspec, + GtkWindowAccessible *self) { - GtkWidget *widget = GTK_WIDGET (obj); - AtkObject* atk_obj = gtk_widget_get_accessible (widget); + AtkObject *atk_obj = ATK_OBJECT (self); - if (g_strcmp0 (pspec->name, "title") == 0) - { - g_object_notify (G_OBJECT (atk_obj), "accessible-name"); - g_signal_emit_by_name (atk_obj, "visible-data-changed"); - } - else - GTK_WIDGET_ACCESSIBLE_CLASS (gtk_window_accessible_parent_class)->notify_gtk (obj, pspec); + g_object_notify (G_OBJECT (atk_obj), "accessible-name"); + g_signal_emit_by_name (atk_obj, "visible-data-changed"); } static const gchar * @@ -244,14 +239,21 @@ gtk_window_accessible_ref_child (AtkObject *object, return NULL; } +static void +gtk_window_accessible_initialize (AtkObject *object, + gpointer data) +{ + GtkWidget *window = data; + + g_signal_connect (window, "notify::title", G_CALLBACK (on_title_changed), object); +} + static void gtk_window_accessible_class_init (GtkWindowAccessibleClass *klass) { - GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass; AtkObjectClass *class = ATK_OBJECT_CLASS (klass); - widget_class->notify_gtk = gtk_window_accessible_notify_gtk; - + class->initialize = gtk_window_accessible_initialize; class->get_name = gtk_window_accessible_get_name; class->get_index_in_parent = gtk_window_accessible_get_index_in_parent; class->ref_relation_set = gtk_window_accessible_ref_relation_set;