summaryrefslogtreecommitdiff
path: root/gtk/gtkatcontextprivate.h
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2020-10-19 17:44:50 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2020-11-04 15:02:44 +0000
commit30210c7087bd635e6a84db33b37d10d83684ebad (patch)
treed24a3c55e669942c4867fc810bffbd2716d4e7b6 /gtk/gtkatcontextprivate.h
parent499e4b4c50e798fd917dc14e5a68bbd2b65a8135 (diff)
downloadgtk+-30210c7087bd635e6a84db33b37d10d83684ebad.tar.gz
a11y: Move ATContext to an explicit realization model
We are doing too much work during the construction phase of the AT-SPI backend for GtkATContext. Instead of having the AtSpiContext register itself at construction time, let's add explicit realize and unrealize operations, and connect the ATContext realization to the rooting operation of a GtkWidget.
Diffstat (limited to 'gtk/gtkatcontextprivate.h')
-rw-r--r--gtk/gtkatcontextprivate.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/gtk/gtkatcontextprivate.h b/gtk/gtkatcontextprivate.h
index 85d897be90..9f161e9f20 100644
--- a/gtk/gtkatcontextprivate.h
+++ b/gtk/gtkatcontextprivate.h
@@ -116,6 +116,8 @@ struct _GtkATContext
GtkAccessiblePropertyChange updated_properties;
GtkAccessibleRelationChange updated_relations;
GtkAccessiblePlatformChange updated_platform;
+
+ guint realized : 1;
};
struct _GtkATContextClass
@@ -138,10 +140,17 @@ struct _GtkATContextClass
void (* child_change) (GtkATContext *self,
GtkAccessibleChildChange changed_child,
GtkAccessible *child);
+
+ void (* realize) (GtkATContext *self);
+ void (* unrealize) (GtkATContext *self);
};
GdkDisplay * gtk_at_context_get_display (GtkATContext *self);
+void gtk_at_context_realize (GtkATContext *self);
+void gtk_at_context_unrealize (GtkATContext *self);
+gboolean gtk_at_context_is_realized (GtkATContext *self);
+
void gtk_at_context_update (GtkATContext *self);
void gtk_at_context_set_accessible_state (GtkATContext *self,