From 2893a71a3e4d19c2cb2cc0bcd2a7d4020f00dbe3 Mon Sep 17 00:00:00 2001 From: Joanmarie Diggs Date: Tue, 21 Oct 2014 23:15:17 -0400 Subject: [PATCH] Implement support for ATK_STATE_HAS_TOOLTIP https://bugzilla.gnome.org/show_bug.cgi?id=738982 --- gtk/a11y/gtkwidgetaccessible.c | 8 ++++ testsuite/a11y/Makefile.am | 1 + testsuite/a11y/tooltips.txt | 78 ++++++++++++++++++++++++++++++++++ testsuite/a11y/tooltips.ui | 33 ++++++++++++++ 4 files changed, 120 insertions(+) create mode 100644 testsuite/a11y/tooltips.txt create mode 100644 testsuite/a11y/tooltips.ui diff --git a/gtk/a11y/gtkwidgetaccessible.c b/gtk/a11y/gtkwidgetaccessible.c index f1167f1d5d..ffa42a278a 100644 --- a/gtk/a11y/gtkwidgetaccessible.c +++ b/gtk/a11y/gtkwidgetaccessible.c @@ -395,6 +395,9 @@ gtk_widget_accessible_ref_state_set (AtkObject *accessible) else atk_state_set_add_state (state_set, ATK_STATE_VERTICAL); } + + if (gtk_widget_get_has_tooltip (widget)) + atk_state_set_add_state (state_set, ATK_STATE_HAS_TOOLTIP); } return state_set; } @@ -502,6 +505,11 @@ gtk_widget_accessible_notify_gtk (GObject *obj, state = ATK_STATE_HORIZONTAL; value = (gtk_orientable_get_orientation (orientable) == GTK_ORIENTATION_HORIZONTAL); } + else if (g_strcmp0 (pspec->name, "has-tooltip") == 0) + { + state = ATK_STATE_HAS_TOOLTIP; + value = gtk_widget_get_has_tooltip (widget); + } else return; diff --git a/testsuite/a11y/Makefile.am b/testsuite/a11y/Makefile.am index e8ab6068a3..1d9fc055bc 100644 --- a/testsuite/a11y/Makefile.am +++ b/testsuite/a11y/Makefile.am @@ -84,6 +84,7 @@ testdata = \ headerbar.ui headerbar.txt \ tree.ui tree.txt \ actionbar.ui actionbar.txt \ + tooltips.ui tooltips.txt \ $(NULL) test_in_files = \ diff --git a/testsuite/a11y/tooltips.txt b/testsuite/a11y/tooltips.txt new file mode 100644 index 0000000000..e1bc6b8ab4 --- /dev/null +++ b/testsuite/a11y/tooltips.txt @@ -0,0 +1,78 @@ +window1 + "frame" + index: 0 + state: enabled resizable sensitive showing visible + toolkit: gtk + + layer: window + alpha: 1 + box1 + "filler" + parent: window1 + index: 0 + state: enabled horizontal sensitive showing visible + toolkit: gtk + + layer: widget + alpha: 1 + button-with-tooltip-text + "push button" + parent: box1 + index: 0 + description: Tooltip1 + state: enabled focusable sensitive showing visible has-tooltip + toolkit: gtk + + layer: widget + alpha: 1 + + image size: -1 x -1 + image description: (null) + + action 0 name: click + action 0 description: Clicks the button + button-with-has-tooltip-true + "push button" + parent: box1 + index: 1 + state: enabled focusable sensitive showing visible has-tooltip + toolkit: gtk + + layer: widget + alpha: 1 + + image size: -1 x -1 + image description: (null) + + action 0 name: click + action 0 description: Clicks the button + button-without-tooltip + "push button" + parent: box1 + index: 2 + state: enabled focusable sensitive showing visible + toolkit: gtk + + layer: widget + alpha: 1 + + image size: -1 x -1 + image description: (null) + + action 0 name: click + action 0 description: Clicks the button + button-with-has-tooltip-false + "push button" + parent: box1 + index: 3 + state: enabled focusable sensitive showing visible + toolkit: gtk + + layer: widget + alpha: 1 + + image size: -1 x -1 + image description: (null) + + action 0 name: click + action 0 description: Clicks the button diff --git a/testsuite/a11y/tooltips.ui b/testsuite/a11y/tooltips.ui new file mode 100644 index 0000000000..4c5145cbe9 --- /dev/null +++ b/testsuite/a11y/tooltips.ui @@ -0,0 +1,33 @@ + + + True + + + True + + + True + Tooltip1 + + + + + True + True + + + + + True + + + + + True + False + + + + + +