[gtk/wip/ebassi/a11y-2: 28/28] a11y: Simplify GtkWindowAccessible
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/ebassi/a11y-2: 28/28] a11y: Simplify GtkWindowAccessible
- Date: Thu, 28 May 2020 13:09:58 +0000 (UTC)
commit 7c8a6c57b0629cfc8e4b366716d75cab76096039
Author: Emmanuele Bassi <ebassi gnome org>
Date: Thu May 28 14:02:04 2020 +0100
a11y: Simplify GtkWindowAccessible
Have GtkWindow notify of title changes, instead of overriding
GtkWidgetAccessible.notify_gtk.
gtk/a11y/gtkwindowaccessible.c | 20 +++++---------------
gtk/a11y/gtkwindowaccessibleprivate.h | 1 +
gtk/gtkwindow.c | 7 +++++++
3 files changed, 13 insertions(+), 15 deletions(-)
---
diff --git a/gtk/a11y/gtkwindowaccessible.c b/gtk/a11y/gtkwindowaccessible.c
index b25eeffb96..1d9d48e55c 100644
--- a/gtk/a11y/gtkwindowaccessible.c
+++ b/gtk/a11y/gtkwindowaccessible.c
@@ -60,20 +60,13 @@ gtk_window_accessible_focus_event (AtkObject *obj,
atk_object_notify_state_change (obj, ATK_STATE_ACTIVE, focus_in);
}
-static void
-gtk_window_accessible_notify_gtk (GObject *obj,
- GParamSpec *pspec)
+void
+gtk_window_accessible_update_title (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 *
@@ -247,11 +240,8 @@ gtk_window_accessible_ref_child (AtkObject *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->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;
diff --git a/gtk/a11y/gtkwindowaccessibleprivate.h b/gtk/a11y/gtkwindowaccessibleprivate.h
index ba2fbfb9e8..8c337b23d0 100644
--- a/gtk/a11y/gtkwindowaccessibleprivate.h
+++ b/gtk/a11y/gtkwindowaccessibleprivate.h
@@ -24,6 +24,7 @@ G_BEGIN_DECLS
void _gtk_window_accessible_set_is_active (GtkWindow *window,
gboolean is_active);
+void gtk_window_accessible_update_title (GtkWindowAccessible *self);
G_END_DECLS
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 4e687fa680..3660796673 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -1985,6 +1985,13 @@ gtk_window_set_title (GtkWindow *window,
if (_gtk_widget_get_realized (GTK_WIDGET (window)))
gdk_toplevel_set_title (GDK_TOPLEVEL (priv->surface), new_title != NULL ? new_title : "");
+ {
+ AtkObject *accessible = _gtk_widget_peek_accessible (GTK_WIDGET (window));
+
+ if (accessible != NULL)
+ gtk_window_accessible_update_title (GTK_WINDOW_ACCESSIBLE (accessible));
+ }
+
g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_TITLE]);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]