[gtk/a11y/atspi] accessible: Add a way to hide accessibles
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/a11y/atspi] accessible: Add a way to hide accessibles
- Date: Tue, 13 Oct 2020 01:59:57 +0000 (UTC)
commit d9adc1b5aaf3399cad9adfabd1a5dbc6803dbbcd
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Oct 12 16:22:52 2020 -0400
accessible: Add a way to hide accessibles
Similar to gtk_widget_should_layout(), add a
gtk_accessible_should_present() function that backends can
use to determine whether an accessible should be presented
or not.
Ways to make a widget not presented in a11y:
- hide the widget
- set its role to NONE
- make it have a NULL AT context
We will use this in future to hide the GtkText inside
an entry, since the Text implementation will be done
by the wrapper.
gtk/gtkaccessible.c | 13 +++++++++++++
gtk/gtkaccessibleprivate.h | 2 ++
2 files changed, 15 insertions(+)
---
diff --git a/gtk/gtkaccessible.c b/gtk/gtkaccessible.c
index dd5890ca92..49186ed0ff 100644
--- a/gtk/gtkaccessible.c
+++ b/gtk/gtkaccessible.c
@@ -47,6 +47,7 @@
#include "gtkatcontextprivate.h"
#include "gtkenums.h"
#include "gtktypebuiltins.h"
+#include "gtkwidget.h"
#include <glib/gi18n-lib.h>
@@ -649,3 +650,15 @@ gtk_accessible_platform_changed (GtkAccessible *self,
gtk_at_context_update (context);
}
+gboolean
+gtk_accessible_should_present (GtkAccessible *self)
+{
+ if (GTK_IS_WIDGET (self) &&
+ !gtk_widget_get_visible (GTK_WIDGET (self)))
+ return FALSE;
+
+ if (gtk_accessible_get_accessible_role (self) == GTK_ACCESSIBLE_ROLE_NONE)
+ return FALSE;
+
+ return TRUE;
+}
diff --git a/gtk/gtkaccessibleprivate.h b/gtk/gtkaccessibleprivate.h
index 092f9c2d9c..ae4847f39c 100644
--- a/gtk/gtkaccessibleprivate.h
+++ b/gtk/gtkaccessibleprivate.h
@@ -40,4 +40,6 @@ const char * gtk_accessible_role_to_name (GtkAccessibleRole role,
void gtk_accessible_platform_changed (GtkAccessible *self,
GtkAccessiblePlatformChange change);
+gboolean gtk_accessible_should_present (GtkAccessible *self);
+
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]