From 7b690b61d1b4f3ab7735d36a50d31967f0a43afd Mon Sep 17 00:00:00 2001 From: Lukasz Stanislawski Date: Thu, 17 Dec 2015 09:36:02 +0100 Subject: [PATCH] atspi: return previous name in overloaded getters Some overloaded accessible name getters did not respect values set by developer. @fix --- legacy/elementary/src/lib/elm_entry.c | 5 ++++- legacy/elementary/src/lib/elm_gengrid.c | 5 ++++- legacy/elementary/src/lib/elm_genlist.c | 6 ++++-- legacy/elementary/src/lib/elm_list.c | 5 ++++- legacy/elementary/src/lib/elm_menu.c | 5 ++++- legacy/elementary/src/lib/elm_spinner.c | 3 +++ legacy/elementary/src/lib/elm_toolbar.c | 5 ++++- legacy/elementary/src/lib/elm_win.c | 7 +++++-- 8 files changed, 32 insertions(+), 9 deletions(-) diff --git a/legacy/elementary/src/lib/elm_entry.c b/legacy/elementary/src/lib/elm_entry.c index ec6e502e3e..baedc27709 100644 --- a/legacy/elementary/src/lib/elm_entry.c +++ b/legacy/elementary/src/lib/elm_entry.c @@ -5718,8 +5718,11 @@ _elm_entry_elm_interface_atspi_accessible_state_set_get(Eo *obj, Elm_Entry_Data } EOLIAN static char* -_elm_entry_elm_interface_atspi_accessible_name_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd) +_elm_entry_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Entry_Data *sd) { + char *name; + eo_do_super(obj, ELM_ENTRY_CLASS, name = elm_interface_atspi_accessible_name_get()); + if (name && strncmp("", name, 1)) return name; const char *ret = edje_object_part_text_get(sd->entry_edje, "elm.guide"); return ret ? strdup(ret) : NULL; } diff --git a/legacy/elementary/src/lib/elm_gengrid.c b/legacy/elementary/src/lib/elm_gengrid.c index 093f5e4289..26d753d8a9 100644 --- a/legacy/elementary/src/lib/elm_gengrid.c +++ b/legacy/elementary/src/lib/elm_gengrid.c @@ -5492,11 +5492,14 @@ _elm_gengrid_item_elm_interface_atspi_accessible_state_set_get(Eo *eo_it, Elm_Ge } EOLIAN char* -_elm_gengrid_item_elm_interface_atspi_accessible_name_get(Eo *eo_it EINA_UNUSED, Elm_Gen_Item *it) +_elm_gengrid_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, Elm_Gen_Item *it) { char *ret; Eina_Strbuf *buf; + eo_do_super(eo_it, ELM_GENGRID_ITEM_CLASS, ret = elm_interface_atspi_accessible_name_get()); + if (ret) return ret; + buf = eina_strbuf_new(); if (it->itc->func.text_get) diff --git a/legacy/elementary/src/lib/elm_genlist.c b/legacy/elementary/src/lib/elm_genlist.c index 0c84c8fb87..e6ff7212a0 100644 --- a/legacy/elementary/src/lib/elm_genlist.c +++ b/legacy/elementary/src/lib/elm_genlist.c @@ -8038,12 +8038,14 @@ _elm_genlist_item_elm_interface_atspi_accessible_state_set_get(Eo *eo_it, Elm_Ge } EOLIAN char* -_elm_genlist_item_elm_interface_atspi_accessible_name_get(Eo *eo_it EINA_UNUSED, - Elm_Gen_Item *it) +_elm_genlist_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, Elm_Gen_Item *it) { char *ret; Eina_Strbuf *buf; + eo_do_super(eo_it, ELM_GENLIST_ITEM_CLASS, ret = elm_interface_atspi_accessible_name_get()); + if (ret) return ret; + buf = eina_strbuf_new(); if (it->itc->func.text_get) diff --git a/legacy/elementary/src/lib/elm_list.c b/legacy/elementary/src/lib/elm_list.c index a4fbffe215..1e81b74320 100644 --- a/legacy/elementary/src/lib/elm_list.c +++ b/legacy/elementary/src/lib/elm_list.c @@ -2152,8 +2152,11 @@ _elm_list_item_elm_interface_atspi_accessible_state_set_get(Eo *eo_it, Elm_List_ } EOLIAN static char* -_elm_list_item_elm_interface_atspi_accessible_name_get(Eo *eo_it EINA_UNUSED, Elm_List_Item_Data *data) +_elm_list_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, Elm_List_Item_Data *data) { + char *ret; + eo_do_super(eo_it, ELM_LIST_ITEM_CLASS, ret = elm_interface_atspi_accessible_name_get()); + if (ret) return ret; return data->label ? strdup(data->label) : NULL; } diff --git a/legacy/elementary/src/lib/elm_menu.c b/legacy/elementary/src/lib/elm_menu.c index c5ca878560..5d7cd15a58 100644 --- a/legacy/elementary/src/lib/elm_menu.c +++ b/legacy/elementary/src/lib/elm_menu.c @@ -1315,8 +1315,11 @@ _elm_menu_item_elm_interface_atspi_accessible_role_get(Eo *obj EINA_UNUSED, Elm_ } EOLIAN static char* -_elm_menu_item_elm_interface_atspi_accessible_name_get(Eo *obj EINA_UNUSED, Elm_Menu_Item_Data *sd) +_elm_menu_item_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Menu_Item_Data *sd) { + char *ret; + eo_do_super(obj, ELM_MENU_ITEM_CLASS, ret = elm_interface_atspi_accessible_name_get()); + if (ret) return ret; return sd->label ? strdup(sd->label) : NULL; } diff --git a/legacy/elementary/src/lib/elm_spinner.c b/legacy/elementary/src/lib/elm_spinner.c index 019ad4d037..116b60685e 100644 --- a/legacy/elementary/src/lib/elm_spinner.c +++ b/legacy/elementary/src/lib/elm_spinner.c @@ -1654,6 +1654,9 @@ _elm_spinner_elm_interface_atspi_value_increment_get(Eo *obj EINA_UNUSED, Elm_Sp EOLIAN static char* _elm_spinner_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Spinner_Data *sd EINA_UNUSED) { + char *name; + eo_do_super(obj, ELM_SPINNER_CLASS, name = elm_interface_atspi_accessible_name_get()); + if (name) return name; const char *ret = elm_layout_text_get(obj, "elm.text"); return ret ? strdup(ret) : NULL; } diff --git a/legacy/elementary/src/lib/elm_toolbar.c b/legacy/elementary/src/lib/elm_toolbar.c index 4fc055bc1c..0d193edf93 100644 --- a/legacy/elementary/src/lib/elm_toolbar.c +++ b/legacy/elementary/src/lib/elm_toolbar.c @@ -3797,8 +3797,11 @@ _elm_toolbar_item_bring_in(Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_Data *item, } EOLIAN static char* -_elm_toolbar_item_elm_interface_atspi_accessible_name_get(Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_Data *item) +_elm_toolbar_item_elm_interface_atspi_accessible_name_get(Eo *eo_item, Elm_Toolbar_Item_Data *item) { + char *ret; + eo_do_super(eo_item, ELM_TOOLBAR_ITEM_CLASS, ret = elm_interface_atspi_accessible_name_get()); + if (ret) return ret; return item->label ? strdup(item->label) : NULL; } diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c index ad91669c28..b1a05aef47 100644 --- a/legacy/elementary/src/lib/elm_win.c +++ b/legacy/elementary/src/lib/elm_win.c @@ -5810,8 +5810,11 @@ _elm_win_elm_interface_atspi_accessible_state_set_get(Eo *obj, Elm_Win_Data *sd EOLIAN static char* _elm_win_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Win_Data *sd EINA_UNUSED) { - const char *ret = elm_win_title_get(obj); - return ret ? strdup(ret) : strdup(""); + char *ret; + eo_do_super(obj, ELM_WIN_CLASS, ret = elm_interface_atspi_accessible_name_get()); + if (ret) return ret; + const char *name = elm_win_title_get(obj); + return name ? strdup(name) : NULL; } #include "elm_win.eo.c"