diff options
| author | Andrea Azzarone <azzaronea@gmail.com> | 2014-02-22 05:18:18 +0100 |
|---|---|---|
| committer | Andrea Azzarone <azzaronea@gmail.com> | 2014-02-22 05:18:18 +0100 |
| commit | 794154b2b3abe00dc684b9c5566bd7b93a67db6a (patch) | |
| tree | fb694c361f32cb0fad8b2712f733cd6dce2abae5 /plugins | |
| parent | 497494427cf4846e2c10c28436cec300b9e58439 (diff) | |
Improve screen reader in the lockscreen.
(bzr r3566.5.441)
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/unityshell/src/nux-text-entry-accessible.cpp | 27 | ||||
| -rw-r--r-- | plugins/unityshell/src/unitya11y.cpp | 5 |
2 files changed, 13 insertions, 19 deletions
diff --git a/plugins/unityshell/src/nux-text-entry-accessible.cpp b/plugins/unityshell/src/nux-text-entry-accessible.cpp index e948f2827..bda50a611 100644 --- a/plugins/unityshell/src/nux-text-entry-accessible.cpp +++ b/plugins/unityshell/src/nux-text-entry-accessible.cpp @@ -48,36 +48,19 @@ static AtkStateSet* nux_text_entry_accessible_ref_state_set(AtkObject* obj); G_DEFINE_TYPE(NuxTextEntryAccessible, nux_text_entry_accessible, NUX_TYPE_VIEW_ACCESSIBLE); -#define NUX_TEXT_ENTRY_ACCESSIBLE_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((obj), NUX_TYPE_TEXT_ENTRY_ACCESSIBLE, \ - NuxTextEntryAccessiblePrivate)) - -struct _NuxTextEntryAccessiblePrivate -{ -}; - - static void nux_text_entry_accessible_class_init(NuxTextEntryAccessibleClass* klass) { - GObjectClass* gobject_class = G_OBJECT_CLASS(klass); AtkObjectClass* atk_class = ATK_OBJECT_CLASS(klass); /* AtkObject */ atk_class->ref_state_set = nux_text_entry_accessible_ref_state_set; atk_class->initialize = nux_text_entry_accessible_initialize; - - g_type_class_add_private(gobject_class, sizeof(NuxTextEntryAccessiblePrivate)); } static void nux_text_entry_accessible_init(NuxTextEntryAccessible* self) -{ - NuxTextEntryAccessiblePrivate* priv = - NUX_TEXT_ENTRY_ACCESSIBLE_GET_PRIVATE(self); - - self->priv = priv; -} +{} AtkObject* nux_text_entry_accessible_new(nux::Object* object) @@ -98,9 +81,15 @@ static void nux_text_entry_accessible_initialize(AtkObject* accessible, gpointer data) { + nux::Object* nux_object = NULL; + nux::TextEntry* text_entry = NULL; + ATK_OBJECT_CLASS(nux_text_entry_accessible_parent_class)->initialize(accessible, data); - atk_object_set_role(accessible, ATK_ROLE_ENTRY); + nux_object = nux_object_accessible_get_object(NUX_OBJECT_ACCESSIBLE(accessible)); + text_entry = dynamic_cast<nux::TextEntry*>(nux_object); + + atk_object_set_role(accessible, text_entry->PasswordMode() ? ATK_ROLE_PASSWORD_TEXT : ATK_ROLE_ENTRY); } static AtkStateSet* diff --git a/plugins/unityshell/src/unitya11y.cpp b/plugins/unityshell/src/unitya11y.cpp index 5c9dc6d41..159938451 100644 --- a/plugins/unityshell/src/unitya11y.cpp +++ b/plugins/unityshell/src/unitya11y.cpp @@ -42,6 +42,7 @@ #include "QuicklistView.h" #include "QuicklistMenuItem.h" #include "SwitcherView.h" +#include "TextInput.h" #include "unity-launcher-accessible.h" #include "unity-launcher-icon-accessible.h" #include "unity-panel-view-accessible.h" @@ -53,6 +54,7 @@ #include "unity-quicklist-accessible.h" #include "unity-quicklist-menu-item-accessible.h" #include "unity-switcher-accessible.h" +#include "unity-text-input-accessible.h" using namespace unity; using namespace unity::dash; @@ -184,6 +186,9 @@ unity_a11y_create_accessible(nux::Object* object) if (object->Type().IsDerivedFromType(unity::SearchBar::StaticObjectType)) return unity_search_bar_accessible_new(object); + if (object->Type().IsDerivedFromType(unity::TextInput::StaticObjectType)) + return unity_text_input_accessible_new(object); + if (object->Type().IsDerivedFromType(unity::switcher::SwitcherView::StaticObjectType)) return unity_switcher_accessible_new(object); |
