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

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

Issue 2694903010: AX checked state changes (Closed)
Patch Set: Test checkbox attribute in automation API, fix whitespace, remove change to third party code Created 3 years, 9 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..38663ccbd1e507f22344eddd00decce60d326b7b 100644
--- a/ui/accessibility/platform/ax_platform_node_auralinux.cc
+++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
@@ -455,10 +455,8 @@ AtkRole AXPlatformNodeAuraLinux::GetAtkRole() {
}
void AXPlatformNodeAuraLinux::GetAtkState(AtkStateSet* atk_state_set) {
- uint32_t state = GetData().state;
+ const uint32_t state = GetData().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 +474,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_CHECKED_STATE);
+ switch (checked) {
+ case ui::AX_CHECKED_STATE_MIXED:
+ atk_state_set_add_state(atk_state_set, ATK_STATE_INDETERMINATE);
+ break;
+ 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