Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1672)

Unified Diff: ui/accessibility/platform/ax_platform_node_auralinux.cc

Issue 2694903010: AX checked state changes (Closed)
Patch Set: Fix compiler error Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/accessibility/platform/ax_platform_node_auralinux.cc
diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc
index f65267a9227fa968871175836f90f8f89f86bea9..6d30f501265854207d2d87a8b4192d12857193cf 100644
--- a/ui/accessibility/platform/ax_platform_node_auralinux.cc
+++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
@@ -455,10 +455,9 @@ AtkRole AXPlatformNodeAuraLinux::GetAtkRole() {
}
void AXPlatformNodeAuraLinux::GetAtkState(AtkStateSet* atk_state_set) {
- uint32_t state = GetData().state;
+ const AXNodeData& data = GetData();
+ uint32_t state = data.state;
- if (state & (1 << ui::AX_STATE_CHECKED))
- atk_state_set_add_state(atk_state_set, ATK_STATE_CHECKED);
if (state & (1 << ui::AX_STATE_DEFAULT))
atk_state_set_add_state(atk_state_set, ATK_STATE_DEFAULT);
if (state & (1 << ui::AX_STATE_EDITABLE))
@@ -476,6 +475,19 @@ void AXPlatformNodeAuraLinux::GetAtkState(AtkStateSet* atk_state_set) {
if (state & (1 << ui::AX_STATE_SELECTED))
atk_state_set_add_state(atk_state_set, ATK_STATE_SELECTED);
+ // Checked state
+ const int checked = GetIntAttribute(ui::AX_ATTR_INVALID_STATE);
+ switch (checked) {
+ case ui::AX_CHECKED_STATE_MIXED:
+ atk_state_set_add_state(atk_state_set, ATK_STATE_INDETERMINATE);
+ // Fall through
+ case ui::AX_CHECKED_STATE_TRUE:
+ atk_state_set_add_state(atk_state_set, ATK_STATE_CHECKED);
+ break;
+ default:
+ break;
+ }
+
if (delegate_->GetFocus() == GetNativeViewAccessible())
atk_state_set_add_state(atk_state_set, ATK_STATE_FOCUSED);
}

Powered by Google App Engine
This is Rietveld 408576698