summaryrefslogtreecommitdiff
path: root/plugins
diff options
authorAndrea Azzarone <azzaronea@gmail.com>2014-02-22 05:18:18 +0100
committerAndrea Azzarone <azzaronea@gmail.com>2014-02-22 05:18:18 +0100
commit794154b2b3abe00dc684b9c5566bd7b93a67db6a (patch)
treefb694c361f32cb0fad8b2712f733cd6dce2abae5 /plugins
parent497494427cf4846e2c10c28436cec300b9e58439 (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.cpp27
-rw-r--r--plugins/unityshell/src/unitya11y.cpp5
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);