[gtk: 23/23] Merge branch 'matthiasc/atspi-child' into 'master'
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk: 23/23] Merge branch 'matthiasc/atspi-child' into 'master'
- Date: Tue, 27 Oct 2020 18:24:44 +0000 (UTC)
commit 8df883ed717a301435ad28ebc400fa595837bc77
Merge: 0c49f7349d adb7676fc1
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Oct 27 18:24:43 2020 +0000
Merge branch 'matthiasc/atspi-child' into 'master'
Emit ChildrenChanged signal on hierarchy updates
See merge request GNOME/gtk!2752
gtk/a11y/gtkatspicontext.c | 180 +++++++++++++++++++++++++++++++++++++---
gtk/a11y/gtkatspiroot.c | 60 +++++++++++++-
gtk/a11y/gtkatspirootprivate.h | 5 ++
gtk/a11y/gtkatspiutils.c | 34 ++++++++
gtk/a11y/gtkatspiutilsprivate.h | 8 ++
gtk/gtkaccessible.c | 36 ++++++++
gtk/gtkaccessibleprivate.h | 4 +
gtk/gtkatcontext.c | 16 ++++
gtk/gtkatcontextprivate.h | 17 ++++
gtk/gtkstack.c | 19 ++---
gtk/gtkwidget.c | 9 ++
gtk/gtkwindow.c | 12 ++-
12 files changed, 376 insertions(+), 24 deletions(-)
---
diff --cc gtk/gtkaccessible.c
index a98bd90ae2,12be6332a3..39c31d5b1e
--- a/gtk/gtkaccessible.c
+++ b/gtk/gtkaccessible.c
@@@ -746,9 -748,42 +748,43 @@@ gtk_accessible_should_present (GtkAcces
!gtk_widget_get_visible (GTK_WIDGET (self)))
return FALSE;
- if (gtk_accessible_get_accessible_role (self) == GTK_ACCESSIBLE_ROLE_NONE)
+ if (gtk_accessible_get_accessible_role (self) == GTK_ACCESSIBLE_ROLE_NONE ||
+ gtk_accessible_get_accessible_role (self) == GTK_ACCESSIBLE_ROLE_PRESENTATION)
return FALSE;
+ context = gtk_accessible_get_at_context (self);
+ if (gtk_at_context_has_accessible_state (context, GTK_ACCESSIBLE_STATE_HIDDEN))
+ {
+ GtkAccessibleValue *value;
+
+ value = gtk_at_context_get_accessible_state (context, GTK_ACCESSIBLE_STATE_HIDDEN);
+ if (gtk_boolean_accessible_value_get (value))
+ return FALSE;
+ }
+
return TRUE;
}
+
+ void
+ gtk_accessible_update_children (GtkAccessible *self,
+ GtkAccessible *child,
+ GtkAccessibleChildState state)
+ {
+ GtkATContext *context;
+
+ if (GTK_IS_WIDGET (self) &&
+ gtk_widget_get_root (GTK_WIDGET (self)) == NULL)
+ return;
+
+ context = gtk_accessible_get_at_context (self);
+
+ /* propagate changes up from ignored widgets */
+ if (gtk_accessible_get_accessible_role (self) == GTK_ACCESSIBLE_ROLE_NONE)
+ context = gtk_accessible_get_at_context (GTK_ACCESSIBLE (gtk_widget_get_parent (GTK_WIDGET (self))));
+
+ if (context == NULL)
+ return;
+
+ gtk_at_context_child_changed (context, 1 << state, child);
+ gtk_at_context_update (context);
+ }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]