[EGIT] [core/efl] master 01/01: elm_radio, elc_multibuttonentry, elm_colorselector: "checked" signal sent
kimcinoo pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=efbd62c40af11fee12474de1adabf1d46a187d67 commit efbd62c40af11fee12474de1adabf1d46a187d67 Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Wed Jun 14 13:04:51 2017 +0900 elm_radio, elc_multibuttonentry, elm_colorselector: "checked" signal sent Summary: Radio, MBE items, color selector items have ELM_ATSPI_ROLE_RADIO_BUTTON role, when one item is selected the other items are automatically unselected, so a notification has to be sent in atspi mode to read the status accordingly Test Plan: In ATSPI mode when radio, mbe item, color selector item is selected status has to notified. Reviewers: kimcinoo, cedric Subscribers: govi, rajeshps, jpeg Differential Revision: https://phab.enlightenment.org/D4960 --- src/lib/elementary/efl_ui_radio.c | 2 -- src/lib/elementary/elc_multibuttonentry.c | 5 + src/lib/elementary/elm_colorselector.c| 7 --- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/lib/elementary/efl_ui_radio.c b/src/lib/elementary/efl_ui_radio.c index 14ddc9b449..17d0ceaaa3 100644 --- a/src/lib/elementary/efl_ui_radio.c +++ b/src/lib/elementary/efl_ui_radio.c @@ -72,8 +72,6 @@ _state_set(Evas_Object *obj, Eina_Bool state, Eina_Bool activate) { elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_CHECKED, EINA_TRUE); } - else - elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_CHECKED, EINA_FALSE); } } } diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/elc_multibuttonentry.c index 4c8fa3844e..04c6ea6810 100644 --- a/src/lib/elementary/elc_multibuttonentry.c +++ b/src/lib/elementary/elc_multibuttonentry.c @@ -516,6 +516,11 @@ _on_item_clicked(void *data, _item_select(WIDGET(it), it); + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(eo_it, + ELM_ATSPI_STATE_CHECKED, + EINA_TRUE); + if (sd->selected_it) efl_event_callback_legacy_call (WIDGET(it), ELM_MULTIBUTTONENTRY_EVENT_ITEM_CLICKED, eo_it); diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c index 10a3c523a1..a11e08d3a6 100644 --- a/src/lib/elementary/elm_colorselector.c +++ b/src/lib/elementary/elm_colorselector.c @@ -1711,9 +1711,10 @@ _item_action_activate(Evas_Object *obj, const char *params EINA_UNUSED) ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd); elm_object_signal_emit(VIEW(item), "elm,state,selected", "elm"); - elm_interface_atspi_accessible_state_changed_signal_emit(obj, - ELM_ATSPI_STATE_CHECKED, -EINA_TRUE); + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(obj, + ELM_ATSPI_STATE_CHECKED, + EINA_TRUE); elm_colorselector_color_set(WIDGET(item), item->color->r, item->color->g, item->color->b, item->color->a); evas_object_smart_callback_call(WIDGET(item), SIG_COLOR_ITEM_SELECTED, --
[EGIT] [core/efl] master 07/08: elc_multibuttonentry: role of MBE item, MBE updated, and state_set_get API added.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=da5ba14664b71f19afc3359f36ff11442012d19a commit da5ba14664b71f19afc3359f36ff11442012d19a Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Mon Jun 5 13:56:42 2017 -0700 elc_multibuttonentry: role of MBE item, MBE updated, and state_set_get API added. Summary: Reason for role change: MBE items do not act like push buttons, they need to maintain their status and at a time only one item can be selected, they act like radio buttons. Role change of MBE from entry to panel, because MBE is just a container and entry is one of the children, when entry gets access frame, it will work as how entry works, but making MBE role as entry does not work as expected and also MBE should not receive highlight as a whole but only its children should receive highlight one more reason why MBE role cannot be entry. state_set_get API added to get items state. Test Plan: When atspi mode is enabled the access frame has to navigate directly on item and not on MBE as a whole and state has to be read out Reviewers: kimcinoo, cedric Reviewed By: cedric Subscribers: cedric, govi, rajeshps, jpeg Differential Revision: https://phab.enlightenment.org/D4925 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elc_multibuttonentry.c | 22 -- src/lib/elementary/elm_multibuttonentry_item.eo | 1 + 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/elc_multibuttonentry.c index 7d00d6dd96..d369c8d721 100644 --- a/src/lib/elementary/elc_multibuttonentry.c +++ b/src/lib/elementary/elc_multibuttonentry.c @@ -772,7 +772,7 @@ _item_new(Elm_Multibuttonentry_Data *sd, return NULL; WIDGET_ITEM_DATA_SET(eo_item, data); - elm_interface_atspi_accessible_role_set(eo_item, ELM_ATSPI_ROLE_PUSH_BUTTON); + elm_interface_atspi_accessible_role_set(eo_item, ELM_ATSPI_ROLE_RADIO_BUTTON); ELM_MULTIBUTTONENTRY_ITEM_DATA_GET(eo_item, item); VIEW(item) = elm_layout_add(obj); @@ -1758,7 +1758,7 @@ _elm_multibuttonentry_efl_object_constructor(Eo *obj, Elm_Multibuttonentry_Data obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); - elm_interface_atspi_accessible_role_set(obj, ELM_ATSPI_ROLE_ENTRY); + elm_interface_atspi_accessible_role_set(obj, ELM_ATSPI_ROLE_PANEL); return obj; } @@ -2067,6 +2067,24 @@ _elm_multibuttonentry_item_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_ return txt; } +EOLIAN static Elm_Atspi_State_Set +_elm_multibuttonentry_item_elm_interface_atspi_accessible_state_set_get(Eo *eo_it, Elm_Multibuttonentry_Item_Data *sd EINA_UNUSED) +{ + Elm_Atspi_State_Set ret; + Eina_Bool sel; + + ret = elm_interface_atspi_accessible_state_set_get(efl_super(eo_it, ELM_MULTIBUTTONENTRY_ITEM_CLASS)); + + sel = elm_obj_multibuttonentry_item_selected_get(eo_it); + + STATE_TYPE_SET(ret, ELM_ATSPI_STATE_EDITABLE); + + if (sel) + STATE_TYPE_SET(ret, ELM_ATSPI_STATE_CHECKED); + + return ret; +} + static Eina_Bool _key_action_activate(Eo *obj, const char *params EINA_UNUSED) { diff --git a/src/lib/elementary/elm_multibuttonentry_item.eo b/src/lib/elementary/elm_multibuttonentry_item.eo index b0d5e1ed2c..aee3d4f067 100644 --- a/src/lib/elementary/elm_multibuttonentry_item.eo +++ b/src/lib/elementary/elm_multibuttonentry_item.eo @@ -31,6 +31,7 @@ class Elm.Multibuttonentry.Item(Elm.Widget.Item, Elm.Widget.Item.part_text { get; set; } Elm.Widget.Item.disable; Elm.Interface.Atspi_Accessible.name { get; } +Elm.Interface.Atspi_Accessible.state_set { get; } Elm.Interface.Atspi_Widget_Action.elm_actions { get; } } } --
[EGIT] [core/efl] master 05/08: elm_config: password mode change should reflect on already running applications.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cab25162576965a2a6267871045c7c512b86f1c2 commit cab25162576965a2a6267871045c7c512b86f1c2 Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Mon Jun 5 13:44:48 2017 -0700 elm_config: password mode change should reflect on already running applications. Summary: When password mode is changed, the change has to reflect on already running apps as well. config_sub_apply will not be called for an already running app. Test Plan: 1. 2 running process 2. Change the config value of password last show in one process 3. Check whether the change has reflected in previous process. Signed-off By: Shilpa Singh<shilpa.si...@samsung.com> Reviewers: jpeg, cedric, thiepha Subscribers: govi, rajeshps Differential Revision: https://phab.enlightenment.org/D4916 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elm_config.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c index 582eb3e969..1d24f17346 100644 --- a/src/lib/elementary/elm_config.c +++ b/src/lib/elementary/elm_config.c @@ -1530,6 +1530,8 @@ _config_apply(void) { _elm_theme_parse(NULL, _elm_config->theme); ecore_animator_frametime_set(1.0 / _elm_config->fps); + edje_password_show_last_set(_elm_config->password_show_last); + edje_password_show_last_timeout_set(_elm_config->password_show_last_timeout); } static void @@ -1537,8 +1539,6 @@ _config_sub_apply(void) { edje_frametime_set(1.0 / _elm_config->fps); edje_scale_set(_elm_config->scale); - edje_password_show_last_set(_elm_config->password_show_last); - edje_password_show_last_timeout_set(_elm_config->password_show_last_timeout); edje_transition_duration_factor_set(_elm_config->transition_duration_factor); if (_elm_config->modules) _elm_module_parse(_elm_config->modules); edje_audio_channel_mute_set(EDJE_CHANNEL_EFFECT, _elm_config->audio_mute_effect); --
[EGIT] [core/efl] master 01/01: elm_colorselector: Improve ATSPI support
kimcinoo pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e53b77d6ce9848bdb274b428c33e6848c8620443 commit e53b77d6ce9848bdb274b428c33e6848c8620443 Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Sat Jun 3 17:28:30 2017 +0900 elm_colorselector: Improve ATSPI support Summary: Item: state_set_get, name, actions api added Widget: children_get api added. Test Plan: In Accessibility mode, on item tap, color name should be read out, and if the color is a selected color, state also should be read out. Reviewers: kimcinoo Subscribers: cedric, jpeg, govi, rajeshps Differential Revision: https://phab.enlightenment.org/D4934 --- src/lib/elementary/elm_color_item.eo| 5 +- src/lib/elementary/elm_colorselector.c | 103 src/lib/elementary/elm_colorselector.eo | 1 + 3 files changed, 108 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_color_item.eo b/src/lib/elementary/elm_color_item.eo index 6f6b7e4a9f..860527c4f6 100644 --- a/src/lib/elementary/elm_color_item.eo +++ b/src/lib/elementary/elm_color_item.eo @@ -1,4 +1,4 @@ -class Elm.Color.Item(Elm.Widget.Item) +class Elm.Color.Item(Elm.Widget.Item, Elm.Interface.Atspi_Widget_Action) { [[Elementary color item class]] legacy_prefix: elm_color_item; @@ -42,5 +42,8 @@ class Elm.Color.Item(Elm.Widget.Item) Elm.Widget.Item.access_register; Elm.Widget.Item.signal_emit; Elm.Widget.Item.focus { get; set; } + Elm.Interface.Atspi_Accessible.state_set { get; } + Elm.Interface.Atspi_Accessible.name { get; } + Elm.Interface.Atspi_Widget_Action.elm_actions { get; } } } diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c index 94a288a035..d3750552b6 100644 --- a/src/lib/elementary/elm_colorselector.c +++ b/src/lib/elementary/elm_colorselector.c @@ -3,6 +3,7 @@ #endif #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED +#define ELM_INTERFACE_ATSPI_COMPONENT_PROTECTED #define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED #include @@ -1702,6 +1703,39 @@ _elm_color_item_elm_widget_item_signal_emit(Eo *eo_it EINA_UNUSED, elm_object_signal_emit(VIEW(it), emission, source); } +static Eina_Bool +_item_action_activate(Evas_Object *obj, const char *params EINA_UNUSED) +{ + Eina_List *l; + ELM_COLOR_ITEM_DATA_GET(obj, item); + ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd); + + elm_object_signal_emit(VIEW(item), "elm,state,selected", "elm"); + elm_interface_atspi_accessible_state_changed_signal_emit(obj, + ELM_ATSPI_STATE_CHECKED, +EINA_TRUE); + elm_colorselector_color_set(WIDGET(item), item->color->r, item->color->g, + item->color->b, item->color->a); + evas_object_smart_callback_call(WIDGET(item), SIG_COLOR_ITEM_SELECTED, + EO_OBJ(item)); + + Eo *eo_temp_item = eina_list_data_get(sd->selected); + if (eo_temp_item && (eo_temp_item != EO_OBJ(item))) + { +ELM_COLOR_ITEM_DATA_GET(eo_temp_item, temp_item); +elm_object_signal_emit(VIEW(temp_item), "elm,state,unselected", "elm"); + } + + EINA_LIST_FOREACH(sd->items, l, eo_temp_item) + { +ELM_COLOR_ITEM_DATA_GET(eo_temp_item, temp_item); +if (item == temp_item) sd->selected = l; + } + sd->focused = ELM_COLORSELECTOR_PALETTE; + + return EINA_TRUE; +} + EOLIAN static Eo * _elm_color_item_efl_object_constructor(Eo *eo_item, Elm_Color_Item_Data *item) { @@ -1744,6 +1778,8 @@ _elm_color_item_efl_object_constructor(Eo *eo_item, Elm_Color_Item_Data *item) if (_elm_config->access_mode == ELM_ACCESS_MODE_ON) elm_wdg_item_access_register(eo_item); + elm_interface_atspi_accessible_role_set(eo_item, ELM_ATSPI_ROLE_RADIO_BUTTON); + return eo_item; } @@ -2586,6 +2622,36 @@ _elm_colorselector_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EIN return _actions[0]; } +EOLIAN static Eina_List* +_elm_colorselector_elm_interface_atspi_accessible_children_get(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *sd) +{ + Eina_List *ret = NULL; + + ret = elm_interface_atspi_accessible_children_get(efl_super(obj, ELM_COLORSELECTOR_CLASS)); + // filter - out box contiainer + ret = eina_list_remove(ret, sd->palette_box); + // append items as colorselector children + ret = eina_list_merge(ret, eina_list_clone(sd->items)); + + return ret; +} + +EOLIAN static Elm_Atspi_State_Set +_elm_color_item_elm_interface_atspi_accessible_state_set_get(Eo *obj, Elm_Color_Item_Data *sd EINA_UNUSED) +{ + Elm_Atspi_State_Set ret; + Eina_Bool sel; + + ret = elm_interface_atspi_accessible_state_set_get(efl_
[EGIT] [core/efl] master 02/03: elm_entry: Cursor disappears on calling select function in an empty entry.
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=442ab2bc67411ab98ddc83c2261c72a6bccf940b commit 442ab2bc67411ab98ddc83c2261c72a6bccf940b Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Fri May 12 15:10:37 2017 +0900 elm_entry: Cursor disappears on calling select function in an empty entry. Summary: Issue: Selection cannot happen on an empty entry, if selection functions are called on empty entry, cursor is hidden, even if entry is focused. Soln: Check for whether entry is empty or not before proceeding with selection. Test Plan: 1. Call select_all, select_region_set on a focused entry 2. You can observe cursor cannot be seen. Reviewers: jpeg Reviewed By: jpeg Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4862 --- src/lib/elementary/elm_entry.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index 46fd873..dba796a 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -4286,8 +4286,9 @@ _elm_entry_select_none(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd) } EOLIAN static void -_elm_entry_select_all(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd) +_elm_entry_select_all(Eo *obj, Elm_Entry_Data *sd) { + if (elm_entry_is_empty(obj)) return; if ((sd->password)) return; if (sd->sel_mode) { @@ -4301,8 +4302,9 @@ _elm_entry_select_all(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd) } EOLIAN static void -_elm_entry_select_region_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, int start, int end) +_elm_entry_select_region_set(Eo *obj, Elm_Entry_Data *sd, int start, int end) { + if (elm_entry_is_empty(obj)) return; if ((sd->password)) return; if (sd->sel_mode) { --
[EGIT] [core/efl] master 01/01: elc_naviframe: Delete naviframe items in LIFO manner on widget deletion.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3d452bdc60b2e353f2728d3ab2894849011c6b4f commit 3d452bdc60b2e353f2728d3ab2894849011c6b4f Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Tue Dec 13 20:56:18 2016 +0900 elc_naviframe: Delete naviframe items in LIFO manner on widget deletion. Summary: Naviframe manages items in the form of a stack, but deletion is happening in FIFO manner, the deletion of items on widget deletion should also happen in LIFO manner. Use Case: Application allocates memory on first push and passes down the same handle for all subsequent pushes, now on deletion as first item is deleted first crash happens when the memory is accessed in second item on its deletion. hence Naviframe should also delete items in LIFO manner. @feature Test Plan: elementary_test->naviframe->push multiple pages Now terminate the app, the items should be deleted in LIFO manner. Reviewers: Hermet, Jaehyun, Jaehyun_Cho Reviewed By: Jaehyun_Cho Subscribers: cedric, govi, rajeshps, jpeg Differential Revision: https://phab.enlightenment.org/D4483 --- src/lib/elementary/elc_naviframe.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elc_naviframe.c b/src/lib/elementary/elc_naviframe.c index 81d20fb..de789a0 100644 --- a/src/lib/elementary/elc_naviframe.c +++ b/src/lib/elementary/elc_naviframe.c @@ -1458,12 +1458,15 @@ _elm_naviframe_efl_canvas_group_group_del(Eo *obj, Elm_Naviframe_Data *sd) { Elm_Naviframe_Item_Data *it; Elm_Naviframe_Op *nfo; + Eina_Inlist *l = NULL; sd->on_deletion = EINA_TRUE; + if (sd->stack) l = sd->stack->last; - while (sd->stack) + while (l) { -it = EINA_INLIST_CONTAINER_GET(sd->stack, Elm_Naviframe_Item_Data); +it = EINA_INLIST_CONTAINER_GET(l, Elm_Naviframe_Item_Data); +l = l->prev; elm_wdg_item_del(EO_OBJ(it)); } --
[EGIT] [core/efl] master 01/01: elm_atspi_bridge: visible data changed signal not sent issue fix.
kimcinoo pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2ec7f7baf9346d7dd2d2c1f51f2fe3f8fc0a8adf commit 2ec7f7baf9346d7dd2d2c1f51f2fe3f8fc0a8adf Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Tue Oct 18 10:56:53 2016 +0900 elm_atspi_bridge: visible data changed signal not sent issue fix. Summary: _visible_data_changed_signal_send function checks for wrong object, hence always returns with out actually sending signal. The state is set to pd->object_broadcast_mask and not pd->object_children_broadcast_mask in _set_broadcast_flag function. Test Plan: Send the visible data changed signal from any widget, but signal is not sent. Reviewers: cedric, lukasz.stanislawski, kimcinoo Reviewed By: kimcinoo Subscribers: rajeshps, govi, jpeg Differential Revision: https://phab.enlightenment.org/D4352 --- src/lib/elementary/elm_atspi_bridge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_atspi_bridge.c b/src/lib/elementary/elm_atspi_bridge.c index 51b259c..880a338 100644 --- a/src/lib/elementary/elm_atspi_bridge.c +++ b/src/lib/elementary/elm_atspi_bridge.c @@ -3906,7 +3906,7 @@ _visible_data_changed_signal_send(void *data, const Efl_Event *event) { ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(data, pd); - if (!STATE_TYPE_GET(pd->object_children_broadcast_mask, ATSPI_OBJECT_EVENT_VISIBLE_DATA_CHANGED)) + if (!STATE_TYPE_GET(pd->object_broadcast_mask, ATSPI_OBJECT_EVENT_VISIBLE_DATA_CHANGED)) { efl_event_callback_stop(event->object); return; --
[EGIT] [core/efl] master 02/02: elm_atspi_bridge: Active descendant changed signal not sent issue fix.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c4c95adc6bb4eacabc5f6e4f306ce15ab51a46cd commit c4c95adc6bb4eacabc5f6e4f306ce15ab51a46cd Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Mon Sep 26 14:28:09 2016 -0700 elm_atspi_bridge: Active descendant changed signal not sent issue fix. Summary: Active descendant changed signal send function checks for wrong object, hence always returns with out actually sending signal. The state is set to pd->object_broadcast_mask and not pd->object_children_broadcast_mask in _set_broadcast_flag function. Test Plan: Send the active descandant changed signal from any widget, but signal is not sent. Reviewers: kimcinoo, lukasz.stanislawski, cedric Reviewed By: cedric Subscribers: jpeg, govi, rajeshps Differential Revision: https://phab.enlightenment.org/D4318 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elm_atspi_bridge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_atspi_bridge.c b/src/lib/elementary/elm_atspi_bridge.c index c6c1b77..011570c 100644 --- a/src/lib/elementary/elm_atspi_bridge.c +++ b/src/lib/elementary/elm_atspi_bridge.c @@ -3925,7 +3925,7 @@ _active_descendant_changed_signal_send(void *data, const Efl_Event *event) ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(data, pd); - if (!STATE_TYPE_GET(pd->object_children_broadcast_mask, ATSPI_OBJECT_EVENT_ACTIVE_DESCENDANT_CHANGED)) + if (!STATE_TYPE_GET(pd->object_broadcast_mask, ATSPI_OBJECT_EVENT_ACTIVE_DESCENDANT_CHANGED)) { efl_event_callback_stop(event->object); return; --
[EGIT] [core/efl] master 01/01: Accessibility: Read pre-edit text.
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5b791420ea03d27d6126a8e048491e056008606b commit 5b791420ea03d27d6126a8e048491e056008606b Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Mon Jul 11 10:36:38 2016 +0900 Accessibility: Read pre-edit text. Summary: Edje_entry: In order to read pre-edit characters as well, send entry_change_info with preedit,changed Elm_entry: In order to read pre-edit characters as well, send text to screen reader on preedit,changed. Test Plan: 1. Change keyboard language to korean/enable prediction 2. Check the reading, text should be read even before committing Signed-off-by: Shilpa Singh <shilpa.si...@samsung.com> Reviewers: thiepha, jihoon, cedric, raster Reviewed By: raster Subscribers: raster, kimcinoo, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4145 --- src/lib/edje/edje_entry.c | 12 ++-- src/lib/elementary/elm_entry.c | 20 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c index 5fda862..c5ed2b3 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -18,6 +18,7 @@ static void _edje_entry_imf_cursor_location_set(Entry *en); static void _edje_entry_imf_cursor_info_set(Entry *en); static void _range_del_emit(Edje *ed, Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o EINA_UNUSED, Entry *en); static void _text_filter_format_prepend(Edje *ed, Entry *en, Evas_Textblock_Cursor *c, const char *text); +static void _free_entry_change_info(void *_info); struct _Entry { @@ -4279,6 +4280,7 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx EINA Edje *ed = data; Edje_Real_Part *rp = ed->focused_part; Entry *en = NULL; + Edje_Entry_Change_Info *info = NULL; int cursor_pos; int preedit_start_pos, preedit_end_pos; char *preedit_string; @@ -4368,8 +4370,6 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx EINA if ((rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD) && _edje_password_show_last) { - Edje_Entry_Change_Info *info; - _edje_entry_hide_visible_password(ed, en->rp); info = _text_filter_markup_prepend(ed, en, en->cursor, eina_strbuf_string_get(buf), @@ -4387,14 +4387,13 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx EINA en->pw_timer = ecore_timer_add (_edje_password_show_last_timeout, _password_timer_cb, en); - free(info); } } else - _text_filter_markup_prepend(ed, en, en->cursor, + info = _text_filter_markup_prepend(ed, en, en->cursor, eina_strbuf_string_get(buf), NULL, NULL, - EINA_TRUE, EINA_FALSE); + EINA_TRUE, EINA_TRUE); eina_strbuf_free(buf); } @@ -4425,7 +4424,8 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx EINA _edje_entry_imf_cursor_info_set(en); _anchors_get(en->cursor, rp->object, en); - _edje_emit(ed, "preedit,changed", rp->part->name); + _edje_emit_full(ed, "preedit,changed", rp->part->name, info, + _free_entry_change_info); _edje_emit(ed, "cursor,changed", rp->part->name); /* delete attribute list */ diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index 160a3bf..87c555f 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -2196,7 +2196,27 @@ _entry_preedit_changed_signal_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { + char *text = NULL; + Edje_Entry_Change_Info *edje_info = (Edje_Entry_Change_Info *) + edje_object_signal_callback_extra_data_get(); _entry_changed_handle(data, ELM_ENTRY_EVENT_PREEDIT_CHANGED); + + if (_elm_config->atspi_mode) + { +Elm_Atspi_Text_Change_Info atspi_info; +if (edje_info && edje_info->insert) + { + text = elm_entry_markup_to_utf8(edje_info->change.insert.content); + atspi_info.content = text; + atspi_info.pos = edje_info->change.insert.pos; + atspi_info.len = edje_info->change.insert.plain_length; + elm_interface_atspi
[EGIT] [core/efl] master 03/03: elm_atspi_bridge: add bounds-changed signal sending code.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d9889062d89bc8a7e4c58ec91dd0ba30eb271524 commit d9889062d89bc8a7e4c58ec91dd0ba30eb271524 Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Mon Jun 27 11:30:01 2016 -0700 elm_atspi_bridge: add bounds-changed signal sending code. Summary: Add bounds-changed signal, this signal can be sent on geometry change of any evas object when atspi mode is enabled. Test Plan: connect to "object:bounds-changed" signal on screen-reader. when signal BoundsChanged is emitted from elm using elm_interface_atspi_accessible_bounds_changed_signal_emit, the signal should be received and we should be able to access geometry. Signed-off-by: Shilpa Singh <shilpa.si...@samsung.com> Reviewers: cedric, lukasz.stanislawski, kimcinoo Subscribers: govi, rajeshps, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4100 Signed-off-by: Cedric Bail <ced...@osg.samsung.com> --- src/lib/elementary/elm_atspi_bridge.c| 16 +++- src/lib/elementary/elm_interface_atspi_accessible.eo | 9 + src/lib/elementary/elm_interface_atspi_accessible.h | 9 + 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_atspi_bridge.c b/src/lib/elementary/elm_atspi_bridge.c index caf2c39..8ba97c2 100644 --- a/src/lib/elementary/elm_atspi_bridge.c +++ b/src/lib/elementary/elm_atspi_bridge.c @@ -116,6 +116,7 @@ static int _init_count = 0; // Object Event handlers static void _state_changed_signal_send(void *data, const Eo_Event *event); +static void _bounds_changed_signal_send(void *data, const Eo_Event *event); static void _property_changed_signal_send(void *data, const Eo_Event *event); static void _children_changed_signal_send(void *data, const Eo_Event *event); static void _window_signal_send(void *data, const Eo_Event *event); @@ -150,6 +151,7 @@ typedef struct { static const Elm_Atspi_Bridge_Event_Handler event_handlers[] = { { ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_CHILDREN_CHANGED, _children_changed_signal_send}, { ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_PROPERTY_CHANGED, _property_changed_signal_send}, + { ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_BOUNDS_CHANGED, _bounds_changed_signal_send}, { ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_STATE_CHANGED, _state_changed_signal_send}, { ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_VISIBLE_DATA_CHANGED, _visible_data_changed_signal_send}, { ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_ACTIVE_DESCENDANT_CHANGED, _active_descendant_changed_signal_send}, @@ -234,7 +236,7 @@ enum _Atspi_Window_Signals static const Eldbus_Signal _event_obj_signals[] = { [ATSPI_OBJECT_EVENT_PROPERTY_CHANGED] = {"PropertyChange", ELDBUS_ARGS({"siiv(so)", NULL}), 0}, - [ATSPI_OBJECT_EVENT_BOUNDS_CHANGED] = {"BoundsChange", ELDBUS_ARGS({"siiv(so)", NULL}), 0}, + [ATSPI_OBJECT_EVENT_BOUNDS_CHANGED] = {"BoundsChanged", ELDBUS_ARGS({"siiv()", NULL}), 0}, [ATSPI_OBJECT_EVENT_LINK_SELECTED] = {"LinkSelected", ELDBUS_ARGS({"siiv(so)", NULL}), 0}, [ATSPI_OBJECT_EVENT_STATE_CHANGED] = {"StateChanged", ELDBUS_ARGS({"siiv(so)", NULL}), 0}, [ATSPI_OBJECT_EVENT_CHILDREN_CHANGED] = {"ChildrenChanged", ELDBUS_ARGS({"siiv(so)", NULL}), 0}, @@ -3718,6 +3720,8 @@ _set_broadcast_flag(const char *event, Eo *bridge) STATE_TYPE_SET(pd->object_broadcast_mask, ATSPI_OBJECT_EVENT_ACTIVE_DESCENDANT_CHANGED); else if (!strcmp(tokens[1], "SelectionChanged")) STATE_TYPE_SET(pd->object_broadcast_mask, ATSPI_OBJECT_EVENT_SELECTION_CHANGED); +else if (!strcmp(tokens[1], "BoundsChanged")) + STATE_TYPE_SET(pd->object_broadcast_mask, ATSPI_OBJECT_EVENT_BOUNDS_CHANGED); } else if (!strcmp(tokens[0], "Window")) { @@ -3826,6 +3830,16 @@ _state_changed_signal_send(void *data, const Eo_Event *event) } static void +_bounds_changed_signal_send(void *data, const Eo_Event *event) +{ + Elm_Atspi_Event_Geometry_Changed_Data *geo_data = event->info; + + _bridge_signal_send(data, event->object, ATSPI_DBUS_INTERFACE_EVENT_OBJECT, + &_event_obj_signals[ATSPI_OBJECT_EVENT_BOUNDS_CHANGED], "", 0, 0, "()", + geo_data->x, geo_data->y, geo_data->width, geo_data->height); +} + +static void _property_changed_signal_send(void *data, const Eo_Event *event) { const char *property = event->info; diff --git a/src/lib/elementary/elm_interface_atspi_accessible.eo b/src/lib/elementary/elm_interface_atspi_accessible.eo index c178a23..a1b89a1 100644 --- a/src/lib/elementary/elm_interface_atspi_accessible.eo +++ b/src/lib/elemen
[EGIT] [core/efl] master 03/06: elementary: add implementation for elm_multibuttonentry_item_selected_get API
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=db79f8499c2fc801a5bf0769f1e4089da9f03e22 commit db79f8499c2fc801a5bf0769f1e4089da9f03e22 Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Wed Jun 8 13:48:07 2016 -0700 elementary: add implementation for elm_multibuttonentry_item_selected_get API Summary: Added definition for item_selected_get API Signed-off-by: Shilpa Singh <shilpa.si...@samsung.com> @fix Test Plan: select an item, call item_selected_get API to check status of the item Reviewers: cedric, CHAN Reviewed By: CHAN Subscribers: CHAN, rajeshps, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D3999 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elc_multibuttonentry.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/elc_multibuttonentry.c index a154571..df01d4f 100644 --- a/src/lib/elementary/elc_multibuttonentry.c +++ b/src/lib/elementary/elc_multibuttonentry.c @@ -1841,12 +1841,14 @@ _elm_multibuttonentry_item_selected_set(Eo *eo_item EINA_UNUSED, EOLIAN static Eina_Bool _elm_multibuttonentry_item_selected_get(Eo *eo_item, -Elm_Multibuttonentry_Item_Data *item EINA_UNUSED) +Elm_Multibuttonentry_Item_Data *item) { - //TODO : To be implemented. + ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN_VAL(WIDGET(item), sd, EINA_FALSE); if (!eo_item) return EINA_FALSE; + if (EO_OBJ(sd->selected_it) == eo_item) + return EINA_TRUE; - return EINA_TRUE; + return EINA_FALSE; } EOLIAN static void --
[EGIT] [core/efl] master 06/07: elementary/colorselector: use layout instead of edje object for components.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d056dadd03c66436ac292e051acdba69a05a4548 commit d056dadd03c66436ac292e051acdba69a05a4548 Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Mon Jun 6 16:47:03 2016 -0700 elementary/colorselector: use layout instead of edje object for components. Summary: Issue: As edje object is used instead of layout for components mode, the content widgets like buttons are added as subobject of colorselector hence when we unset the edje object on mode change the buttons still remain subobject of colorselector causing issues when all subobjects of colorselector is queried(sub objects are queried during atspi mode). Soln: Use layout instead of edje object. Signed-off-by: Shilpa Singh <shilpa.si...@samsung.com> @fix Test Plan: Change the mode to Palette mode and access the children of colorselector. Reviewers: Hermet, cedric Subscribers: govi, rajeshps, kimcinoo, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D3987 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elm_colorselector.c | 39 +- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c index 8ec4714..05a96c6 100644 --- a/src/lib/elementary/elm_colorselector.c +++ b/src/lib/elementary/elm_colorselector.c @@ -1163,9 +1163,8 @@ _color_bars_add(Evas_Object *obj) snprintf(colorbar_s, sizeof(colorbar_s), "elm.colorbar_%d", i); edje_object_signal_callback_add (sd->cb_data[i]->colorbar, "drag", "*", _arrow_cb, sd->cb_data[i]); -edje_object_part_swallow - (sd->col_bars_area, colorbar_s, sd->cb_data[i]->colorbar); -elm_widget_sub_object_add(obj, sd->cb_data[i]->colorbar); +elm_object_part_content_set(sd->col_bars_area, +colorbar_s, sd->cb_data[i]->colorbar); /* load colorbar image */ if (!sd->cb_data[i]->bar) sd->cb_data[i]->bar = edje_object_add(e); @@ -1175,7 +1174,7 @@ _color_bars_add(Evas_Object *obj) (obj, sd->cb_data[i]->bar, "colorselector", "image", buf); edje_object_part_swallow (sd->cb_data[i]->colorbar, "elm.bar", sd->cb_data[i]->bar); -elm_widget_sub_object_add(obj, sd->cb_data[i]->bar); +elm_widget_sub_object_add(sd->col_bars_area, sd->cb_data[i]->bar); /* provide expanded touch area */ if (!sd->cb_data[i]->touch_area) sd->cb_data[i]->touch_area = evas_object_rectangle_add(e); @@ -1187,7 +1186,7 @@ _color_bars_add(Evas_Object *obj) (sd->cb_data[i]->touch_area, EVAS_CALLBACK_MOUSE_DOWN, _colorbar_down_cb, sd->cb_data[i]); evas_object_event_callback_add (sd->cb_data[i]->touch_area, EVAS_CALLBACK_MOUSE_MOVE, _colorbar_move_cb, sd->cb_data[i]); -elm_widget_sub_object_add(obj, sd->cb_data[i]->touch_area); +elm_widget_sub_object_add(sd->col_bars_area, sd->cb_data[i]->touch_area); // ACCESS if (_elm_config->access_mode == ELM_ACCESS_MODE_ON) @@ -1204,7 +1203,7 @@ _color_bars_add(Evas_Object *obj) (sd->cb_data[i]->colorbar, "elm.bar_bg", sd->cb_data[i]->bg_rect); - elm_widget_sub_object_add(obj, sd->cb_data[i]->bg_rect); + elm_widget_sub_object_add(sd->col_bars_area, sd->cb_data[i]->bg_rect); } if (i == 3) { @@ -1230,7 +1229,7 @@ _color_bars_add(Evas_Object *obj) edje_object_part_swallow (sd->cb_data[i]->colorbar, "elm.arrow_icon", sd->cb_data[i]->arrow); -elm_widget_sub_object_add(obj, sd->cb_data[i]->arrow); +elm_widget_sub_object_add(sd->col_bars_area, sd->cb_data[i]->arrow); if (i == 2) evas_object_color_set(sd->cb_data[i]->arrow, 0, 0, 0, 255); @@ -1239,11 +1238,11 @@ _color_bars_add(Evas_Object *obj) (sd->cb_data[i]->arrow, sd->er, sd->eg, sd->eb, 255); /* load left button */ -if (!sd->cb_data[i]->lbt) sd->cb_data[i]->lbt = elm_button_add(obj); +if (!sd->cb_data[i]->lbt) sd->cb_data[i]->lbt = elm_button_add(sd->col_bars_area); snprintf(buf, sizeof(buf), "colorselector/left/%s", elm_widget_style_get(obj)); elm_object_style_set(sd->cb_data[i]->lbt, buf); -elm_widget_sub_object_add(obj, sd->cb_data[i]->lbt); +elm_widget_sub_object_add(sd->col_bars_area, sd-&g
[EGIT] [core/efl] master 05/07: elementary/colorselector: colornames updated with spaces.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0278ffdf7c9cc94db8168f091c7e360d46a6868b commit 0278ffdf7c9cc94db8168f091c7e360d46a6868b Author: Shilpa Singh <shilpa.si...@samsung.com> Date: Mon Jun 6 16:42:27 2016 -0700 elementary/colorselector: colornames updated with spaces. Summary: Colornames updated with spaces so that any TTS engine can read them out in an understandable manner. Signed-off-by: Shilpa Singh <shilpa.si...@samsung.com> @fix Test Plan: Enable ATSPI mode Tap colors and listen to colorname's Reviewers: cedric Subscribers: rajeshps, jpeg Differential Revision: https://phab.enlightenment.org/D3997 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elm_colorselector.c | 180 - 1 file changed, 90 insertions(+), 90 deletions(-) diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c index f29b872..8ec4714 100644 --- a/src/lib/elementary/elm_colorselector.c +++ b/src/lib/elementary/elm_colorselector.c @@ -42,141 +42,141 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = static const Elm_Color_Name _color_name[] = { {{0, 0, 0, 255}, "black"}, {{0, 0, 128, 255}, "navy"}, - {{0, 0, 139, 255}, "darkblue"}, - {{0, 0, 205, 255}, "mediumblue"}, + {{0, 0, 139, 255}, "dark blue"}, + {{0, 0, 205, 255}, "medium blue"}, {{0, 0, 255, 255}, "blue"}, - {{0, 100, 0, 255}, "darkgreen"}, + {{0, 100, 0, 255}, "dark green"}, {{0, 128, 0, 255}, "green"}, {{0, 128, 128, 255}, "teal"}, - {{0, 139, 139, 255}, "darkcyan"}, - {{0, 191, 255, 255}, "deepskyblue"}, - {{0, 206, 209, 255}, "darkturquoise"}, - {{0, 250, 154, 255}, "mediumspringgreen"}, + {{0, 139, 139, 255}, "dark cyan"}, + {{0, 191, 255, 255}, "deep sky blue"}, + {{0, 206, 209, 255}, "dark turquoise"}, + {{0, 250, 154, 255}, "medium spring green"}, {{0, 255, 0, 255}, "lime"}, - {{0, 255, 127, 255}, "springgreen"}, + {{0, 255, 127, 255}, "spring green"}, {{0, 255, 255, 255}, "aqua"}, {{0, 255, 255, 255}, "cyan"}, - {{25, 25, 112, 255}, "midnightblue"}, - {{30, 144, 255, 255}, "dodgerblue"}, - {{32, 178, 170, 255}, "lightseagreen"}, - {{34, 139, 34, 255}, "forestgreen"}, - {{46, 139, 87, 255}, "seagreen"}, - {{47, 79, 79, 255},"darkslategrey"}, - {{50, 205, 50, 255}, "limegreen"}, - {{60, 179, 113, 255}, "mediumseagreen"}, + {{25, 25, 112, 255}, "midnight blue"}, + {{30, 144, 255, 255}, "dodger blue"}, + {{32, 178, 170, 255}, "light sea green"}, + {{34, 139, 34, 255}, "forest green"}, + {{46, 139, 87, 255}, "sea green"}, + {{47, 79, 79, 255},"dark slate grey"}, + {{50, 205, 50, 255}, "lime green"}, + {{60, 179, 113, 255}, "medium sea green"}, {{64, 224, 208, 255}, "turquoise"}, - {{65, 105, 225, 255}, "royalblue"}, - {{70, 130, 180, 255}, "steelblue"}, - {{72, 61, 139, 255}, "darkslateblue"}, - {{72, 209, 204, 255}, "mediumturquoise"}, + {{65, 105, 225, 255}, "royal blue"}, + {{70, 130, 180, 255}, "steel blue"}, + {{72, 61, 139, 255}, "dark slate blue"}, + {{72, 209, 204, 255}, "medium turquoise"}, {{75, 0, 130, 255},"indigo"}, - {{85, 107, 47, 255}, "darkolivegreen"}, - {{95, 158, 160, 255}, "cadetblue"}, - {{100, 149, 237, 255}, "cornflowerblue"}, - {{102, 205, 170, 255}, "mediumaquamarine"}, - {{105, 105, 105, 255}, "dimgrey"}, - {{106, 90, 205, 255}, "slateblue"}, - {{107, 142, 35, 255}, "olivedrab"}, - {{112, 128, 144, 255}, "slategrey"}, - {{119, 136, 153, 255}, "lightslategrey"}, - {{123, 104, 238, 255}, "mediumslateblue"}, - {{124, 252, 0, 255}, "lawngreen"}, + {{85, 107, 47, 255}, "dark olive green"}, + {{95, 158, 160, 255}, "cadet blue"}, + {{100, 149, 237, 255}, "corn flower blue"}, + {{102, 205, 170, 255}, "medium aquamarine"}, + {{105, 105, 105, 255}, "dim grey"}, + {{106, 90, 205, 255}, "slate blue"}, + {{107, 142, 35, 255}, "olive drab"}, + {{112, 128, 144, 255}, "slate grey"}, + {{119, 136, 153, 255}, "light s
[EGIT] [core/elementary] elementary-1.9 01/01: Avoid Month wrapping by ignoring summer time correction.
raster pushed a commit to branch elementary-1.9. http://git.enlightenment.org/core/elementary.git/commit/?id=1829c6476281e023eb39c256d22b24e4039be383 commit 1829c6476281e023eb39c256d22b24e4039be383 Author: Shilpa Singh shilpa.si...@samsung.com Date: Thu Mar 6 21:18:50 2014 +0900 Avoid Month wrapping by ignoring summer time correction. Summary: This patch fixes the issue of month wrapping due to summer time correction is some locales by ignoring day light saving mode in mktime Signed-off by: M.V.K Sumanth sumant...@samsung.com @fix Test Plan: Change the date for month were day light saving mode is applied and observe the wrapping. Reviewers: seoz, Hermet, raster Reviewed By: raster CC: govi, raster Differential Revision: https://phab.enlightenment.org/D590 --- src/lib/elm_datetime.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/elm_datetime.c b/src/lib/elm_datetime.c index f5df6bd..ebb1abc 100644 --- a/src/lib/elm_datetime.c +++ b/src/lib/elm_datetime.c @@ -577,14 +577,14 @@ _max_days_get(int year, localtime_r(t, time1); time1.tm_year = year; time1.tm_mon = month; - /* To restrict month wrapping because of summer time in some locales, -* disable day light saving mode.*/ - time1.tm_isdst = 0; for (day = MIN_DAYS_IN_MONTH; day = mapping[ELM_DATETIME_DATE].def_max; day++) { time1.tm_mday = day; mktime(time1); +/* To restrict month wrapping because of summer time in some locales, +* ignore day light saving mode in mktime(). */ +time1.tm_isdst = -1; if (time1.tm_mday == 1) break; } day--; --
[EGIT] [core/elementary] master 01/01: Avoid Month wrapping by ignoring summer time correction.
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=fed4aafcdc0366edd90ab9c7ebbfa713373672b7 commit fed4aafcdc0366edd90ab9c7ebbfa713373672b7 Author: Shilpa Singh shilpa.si...@samsung.com Date: Thu Mar 6 21:18:50 2014 +0900 Avoid Month wrapping by ignoring summer time correction. Summary: This patch fixes the issue of month wrapping due to summer time correction is some locales by ignoring day light saving mode in mktime Signed-off by: M.V.K Sumanth sumant...@samsung.com @fix Test Plan: Change the date for month were day light saving mode is applied and observe the wrapping. Reviewers: seoz, Hermet, raster Reviewed By: raster CC: govi, raster Differential Revision: https://phab.enlightenment.org/D590 --- src/lib/elm_datetime.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/elm_datetime.c b/src/lib/elm_datetime.c index 38a68ae..4004992 100644 --- a/src/lib/elm_datetime.c +++ b/src/lib/elm_datetime.c @@ -583,14 +583,14 @@ _max_days_get(int year, localtime_r(t, time1); time1.tm_year = year; time1.tm_mon = month; - /* To restrict month wrapping because of summer time in some locales, -* disable day light saving mode.*/ - time1.tm_isdst = 0; for (day = MIN_DAYS_IN_MONTH; day = mapping[ELM_DATETIME_DATE].def_max; day++) { time1.tm_mday = day; mktime(time1); +/* To restrict month wrapping because of summer time in some locales, +* ignore day light saving mode in mktime(). */ +time1.tm_isdst = -1; if (time1.tm_mday == 1) break; } day--; --
[EGIT] [core/elementary] master 01/01: Colorselector: Palette_items_get API added.
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=cd9507ed6004044c57f164b151ea6bf43d25da2f commit cd9507ed6004044c57f164b151ea6bf43d25da2f Author: Shilpa Singh shilpa.si...@samsung.com Date: Fri Feb 7 23:30:01 2014 +0900 Colorselector: Palette_items_get API added. Summary: Summary: Issue:Colorselector adds default palette items by reading colors from config, application do not have any way to get that color list. Solution: API added to get the palette's item list. Signed-off by: Shilpa Singh(shilpa.si...@samsung.com) Test Plan: Test Plan: Create a list pointer and call palette_items_get API to get the list of color items. Change the color of any item to confirm whether the list has been returned correctly. Eina_List *list = elm_colorselector_palette_items_get(cs); Eina_List *list2 = eina_list_last(list); Elm_Object_Item *color_item = eina_list_data_get(list2); elm_colorselector_palette_item_color_set(color_item, 0, 0, 0, 255); Reviewers: seoz, Hermet, raster CC: govi, myoungwoon Differential Revision: https://phab.enlightenment.org/D503 --- src/bin/test_colorselector.c | 7 +++ src/lib/elm_colorselector.c| 19 +++ src/lib/elm_colorselector_eo.h | 13 + src/lib/elm_colorselector_legacy.h | 15 +++ 4 files changed, 54 insertions(+) diff --git a/src/bin/test_colorselector.c b/src/bin/test_colorselector.c index fe1157f..411d7a0 100644 --- a/src/bin/test_colorselector.c +++ b/src/bin/test_colorselector.c @@ -81,6 +81,8 @@ test_colorselector(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *bx2, *cs, *fr, *re, *bt; + const Eina_List *item_list, *last_item_list; + Elm_Object_Item *color_item; int r, g, b, a; win = elm_win_util_standard_add(colorselector, ColorSelector); @@ -124,6 +126,11 @@ test_colorselector(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, elm_colorselector_palette_color_add(cs, 255, 255, 119, 255); elm_colorselector_palette_color_add(cs, 133, 100, 255, 255); + item_list = elm_colorselector_palette_items_get(cs); + last_item_list = eina_list_last(item_list); + color_item = eina_list_data_get(last_item_list); + elm_colorselector_palette_item_color_set(color_item, 255, 0, 0, 255); + a = 180; r = 255; g = 160; diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index 0809689..714cd79 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -2149,6 +2149,23 @@ _palette_clear(Eo *obj, void *_pd, va_list *list EINA_UNUSED) sd-focused = ELM_COLORSELECTOR_COMPONENTS; } +EAPI const Eina_List * +elm_colorselector_palette_items_get(const Evas_Object *obj) +{ + ELM_COLORSELECTOR_CHECK(obj) NULL; + const Eina_List *color_list = NULL; + eo_do((Eo *) obj, elm_obj_colorselector_palette_items_get(color_list)); + return color_list; +} + +static void +_palette_items_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const Eina_List **ret = va_arg(*list, const Eina_List **); + Elm_Colorselector_Smart_Data *sd = _pd; + *ret = sd-items; +} + EAPI void elm_colorselector_palette_name_set(Evas_Object *obj, const char *palette_name) @@ -2213,6 +2230,7 @@ _class_constructor(Eo_Class *klass) EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_MODE_GET), _mode_get), EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_COLOR_ADD), _palette_color_add), EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_CLEAR), _palette_clear), + EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_ITEMS_GET), _palette_items_get), EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_SET), _palette_name_set), EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_GET), _palette_name_get), EO_OP_FUNC_SENTINEL @@ -2231,6 +2249,7 @@ static const Eo_Op_Description op_desc[] = { EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_MODE_GET, Get Colorselector's mode.), EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_COLOR_ADD, Add a new color item to palette.), EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_CLEAR, Clear the palette items.), + EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_ITEMS_GET, Get palette's item list), EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_SET, Set current palette's name.), EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_GET, Get current palette's name.), EO_OP_DESCRIPTION_SENTINEL diff --git a/src/lib/elm_colorselector_eo.h b/src/lib/elm_colorselector_eo.h index 93ddc4c..b7ac81a
[EGIT] [core/elementary] master 01/01: Colorselector: Item Selection/Unselection logic changes and corresponding API additions.
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=68f2f6e7f2a8fc432d2b1e455839022f20e71e34 commit 68f2f6e7f2a8fc432d2b1e455839022f20e71e34 Author: Shilpa Singh shilpa.si...@samsung.com Date: Sat Feb 8 13:33:58 2014 +0900 Colorselector: Item Selection/Unselection logic changes and corresponding API additions. SUMMARY Item should remain selected once pressed. When one item is selected other items should be unselected. No special behavior on long press, item gets selected on mouse up. APIs added are to get current selected item and to programmatically control the selection/unselection of an item. This is patch D515 (had to do by hand). --- src/bin/test_colorselector.c | 5 ++- src/lib/elm_colorselector.c| 87 -- src/lib/elm_colorselector_common.h | 21 + src/lib/elm_colorselector_eo.h | 13 ++ src/lib/elm_colorselector_legacy.h | 11 + src/lib/elm_widget_colorselector.h | 1 - 6 files changed, 124 insertions(+), 14 deletions(-) diff --git a/src/bin/test_colorselector.c b/src/bin/test_colorselector.c index 411d7a0..5947632 100644 --- a/src/bin/test_colorselector.c +++ b/src/bin/test_colorselector.c @@ -84,6 +84,7 @@ test_colorselector(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const Eina_List *item_list, *last_item_list; Elm_Object_Item *color_item; int r, g, b, a; + Elm_Object_Item *item; win = elm_win_util_standard_add(colorselector, ColorSelector); elm_win_autodel_set(win, EINA_TRUE); @@ -113,7 +114,9 @@ test_colorselector(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, evas_object_show(fr); cs = elm_colorselector_add(fr); - elm_colorselector_palette_color_add(cs, 255, 90, 18, 128); + item = elm_colorselector_palette_color_add(cs, 255, 90, 18, 128); + elm_colorselector_palette_item_selected_set(item, EINA_TRUE); + elm_colorselector_palette_color_add(cs, 255, 213, 0, 255); elm_colorselector_palette_color_add(cs, 146, 255, 11, 255); elm_colorselector_palette_color_add(cs, 9, 186, 10, 255); diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index 714cd79..daf3261 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -1272,7 +1272,7 @@ _on_color_long_press(void *data) ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd); sd-longpress_timer = NULL; - sd-longpressed = EINA_TRUE; + evas_object_smart_callback_call (WIDGET(item), SIG_COLOR_ITEM_LONGPRESSED, item); @@ -1293,8 +1293,6 @@ _on_color_pressed(void *data, ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd); if (ev-button != 1) return; - elm_object_signal_emit(VIEW(item), elm,state,selected, elm); - sd-longpressed = EINA_FALSE; ecore_timer_del(sd-longpress_timer); sd-longpress_timer = ecore_timer_add @@ -1317,15 +1315,17 @@ _on_color_released(void *data, if (ev-button != 1) return; ELM_SAFE_FREE(sd-longpress_timer, ecore_timer_del); - elm_object_signal_emit(VIEW(item), elm,state,unselected, elm); - if (!sd-longpressed) - { -elm_colorselector_color_set - (WIDGET(item), item-color-r, item-color-g, item-color-b, - item-color-a); -evas_object_smart_callback_call - (WIDGET(item), SIG_COLOR_ITEM_SELECTED, item); - } + + elm_object_signal_emit(VIEW(item), elm,state,selected, elm); + elm_colorselector_color_set(WIDGET(item), item-color-r, item-color-g, + item-color-b, item-color-a); + evas_object_smart_callback_call(WIDGET(item), SIG_COLOR_ITEM_SELECTED, + item); + + temp_item = eina_list_data_get(sd-selected); + if (temp_item (temp_item != item)) + elm_object_signal_emit(VIEW(temp_item), elm,state,unselected, elm); + EINA_LIST_FOREACH(sd-items, l, temp_item) if (item == temp_item) sd-selected = l; sd-focused = ELM_COLORSELECTOR_PALETTE; @@ -2167,6 +2167,67 @@ _palette_items_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) } EAPI void +elm_colorselector_palette_item_selected_set(Elm_Object_Item *it, + Eina_Bool selected) +{ + Elm_Color_Item *temp_item, *item; + item = (Elm_Color_Item *)it; + Eina_List *l; + + ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd); + ELM_COLORSELECTOR_ITEM_CHECK_OR_RETURN(it); + + if (selected) + { +temp_item = eina_list_data_get(sd-selected); +if (item == temp_item) return; +elm_object_signal_emit(VIEW(item), elm,state,selected, elm); +elm_colorselector_color_set(WIDGET(item), item-color-r, item-color-g, +item-color-b, item-color-a); +if (temp_item) + elm_object_signal_emit(VIEW(temp_item), elm,state,unselected, elm); + +EINA_LIST_FOREACH(sd-items, l, temp_item) + if (item == temp_item) sd-selected = l
[EGIT] [core/elementary] master 01/01: spinner: After long press of inc/dec buttons, start continuously increasing/decreasing
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=38962c52ba84148380617ea3ac3c86401fc47dca commit 38962c52ba84148380617ea3ac3c86401fc47dca Author: Shilpa Singh shilpa.si...@samsung.com Date: Wed Feb 5 01:29:14 2014 +0900 spinner: After long press of inc/dec buttons, start continuously increasing/decreasing Summary: When inc/dec buttons are pressed, start changing value after longpress has happened on buttons and not immediately. Signed-off by: Mohammad Irfan (mohamma...@samsung.com) Signed-off by: Shilpa Singh(shilpa.si...@samsung.com) Test Plan: Long press on inc/dec buttons of spinner. Reviewers: seoz, woohyun CC: Hermet, jchanwook, raster Differential Revision: https://phab.enlightenment.org/D365 --- AUTHORS | 1 + src/lib/elm_authors.h| 1 + src/lib/elm_spinner.c| 46 src/lib/elm_widget_spinner.h | 2 ++ 4 files changed, 38 insertions(+), 12 deletions(-) diff --git a/AUTHORS b/AUTHORS index 59f64e3..c19025f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -88,3 +88,4 @@ Sanghyeon Lee sh10233@samsung.com Anil Kumar Nahak ak.na...@samsung.com Michal Jagiello m.jagie...@samsung.com Chinmaya Panigrahi c.panigr...@samsung.com +Mohammad Irfan mohamma...@samsung.com diff --git a/src/lib/elm_authors.h b/src/lib/elm_authors.h index 7e9f0e5..5f4ce50 100644 --- a/src/lib/elm_authors.h +++ b/src/lib/elm_authors.h @@ -90,6 +90,7 @@ * @author Anil Kumar Nahak ak.nahak@@samsung.com * @author Michal Jagiello m.jagiello@@samsung.com * @author Chinmaya Panigrahi c.panigrahi@@samsung.com + * @author Mohammad Irfan mohammad.i@@samsung.com * * Please contact enlightenment-devel@lists.sourceforge.net to get in * contact with the developers and maintainers. diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 9c059b6..ffeb975 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -323,16 +323,18 @@ _spin_value(void *data) return ECORE_CALLBACK_RENEW; } -static void -_val_inc_start(Evas_Object *obj) +static Eina_Bool +_val_inc_start(void *data) { - ELM_SPINNER_DATA_GET(obj, sd); + ELM_SPINNER_DATA_GET(data, sd); sd-interval = sd-first_interval; sd-spin_speed = sd-step; + sd-longpress_timer = NULL; ecore_timer_del(sd-spin_timer); - sd-spin_timer = ecore_timer_add(sd-interval, _spin_value, obj); - _spin_value(obj); + sd-spin_timer = ecore_timer_add(sd-interval, _spin_value, data); + _spin_value(data); + return ECORE_CALLBACK_CANCEL; } static void @@ -345,16 +347,18 @@ _val_inc_stop(Evas_Object *obj) ELM_SAFE_FREE(sd-spin_timer, ecore_timer_del); } -static void -_val_dec_start(Evas_Object *obj) +static Eina_Bool +_val_dec_start(void *data) { - ELM_SPINNER_DATA_GET(obj, sd); + ELM_SPINNER_DATA_GET(data, sd); sd-interval = sd-first_interval; sd-spin_speed = -sd-step; + sd-longpress_timer = NULL; ecore_timer_del(sd-spin_timer); - sd-spin_timer = ecore_timer_add(sd-interval, _spin_value, obj); - _spin_value(obj); + sd-spin_timer = ecore_timer_add(sd-interval, _spin_value, data); + _spin_value(data); + return ECORE_CALLBACK_CANCEL; } static void @@ -381,7 +385,9 @@ _button_inc_start_cb(void *data, if ((sd-val_updated) (sd-val == sd-val_min)) return; return; } - _val_inc_start(data); + ecore_timer_del(sd-longpress_timer); + sd-longpress_timer = ecore_timer_add +(_elm_config-longpress_timeout, _val_inc_start, data); } static void @@ -390,6 +396,13 @@ _button_inc_stop_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { +ELM_SPINNER_DATA_GET(data, sd); +if (sd-longpress_timer) + { + ELM_SAFE_FREE(sd-longpress_timer, ecore_timer_del); + sd-spin_speed = sd-step; + _spin_value(data); + } _val_inc_stop(data); } @@ -406,7 +419,9 @@ _button_dec_start_cb(void *data, _entry_value_apply(obj); if ((sd-val_updated) (sd-val == sd-val_max)) return; } - _val_dec_start(data); + ecore_timer_del(sd-longpress_timer); + sd-longpress_timer = ecore_timer_add + (_elm_config-longpress_timeout, _val_dec_start, data); } static void @@ -415,6 +430,13 @@ _button_dec_stop_cb(void *data, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { + ELM_SPINNER_DATA_GET(data, sd); + if (sd-longpress_timer) + { +ELM_SAFE_FREE(sd-longpress_timer, ecore_timer_del); +sd-spin_speed = -sd-step; +_spin_value(data); + } _val_dec_stop(data); } diff --git a/src/lib/elm_widget_spinner.h b/src/lib/elm_widget_spinner.h index b4225c2..0e9c308 100644 --- a/src/lib/elm_widget_spinner.h +++ b/src/lib/elm_widget_spinner.h @@ -32,6 +32,8 @@ struct
[EGIT] [core/elementary] master 01/01: Elm_Spinner: UI Concept change fix.
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=617cf8859f0f1fec5ea60fefef446b4454815554 commit 617cf8859f0f1fec5ea60fefef446b4454815554 Author: Shilpa Singh shilpa.si...@samsung.com Date: Sat Nov 2 20:33:00 2013 +0900 Elm_Spinner: UI Concept change fix. Older UI concept: when text in spinner's entry is inputted and text is not committed yet and when inc/dec is clicked. do not commit text and reset the value to older original value. New UI concept: When Text in spinner's entry is inputted and text is not committed yet and when inc/dec buttons are clicked. Commit the entry's text and inc/dec accordingly. If entry' s text is already modified owing to min/max update, then do not inc/dec. Signed-off by: Shilpa Singh shilpa.si...@samsung.com --- src/lib/elm_spinner.c| 32 src/lib/elm_widget_spinner.h | 3 ++- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index fad85fa..a686abd 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -238,15 +238,6 @@ _entry_hide(Evas_Object *obj) } static void -_reset_value(Evas_Object *obj) -{ - ELM_SPINNER_DATA_GET(obj, sd); - - _entry_hide(obj); - elm_spinner_value_set(obj, sd-orig_val); -} - -static void _entry_value_apply(Evas_Object *obj) { const char *str; @@ -283,7 +274,6 @@ _entry_toggle_cb(void *data, if (sd-entry_visible) _entry_value_apply(data); else { -sd-orig_val = sd-val; elm_layout_signal_emit(data, elm,state,active, elm); _entry_show(sd); elm_entry_select_all(sd-ent); @@ -358,7 +348,7 @@ _val_dec_stop(Evas_Object *obj) static void _button_inc_start_cb(void *data, - Evas_Object *obj __UNUSED__, + Evas_Object *obj, const char *emission __UNUSED__, const char *source __UNUSED__) { @@ -366,7 +356,8 @@ _button_inc_start_cb(void *data, if (sd-entry_visible) { -_reset_value(data); +_entry_value_apply(obj); +if ((sd-val_updated) (sd-val == sd-val_min)) return; return; } _val_inc_start(data); @@ -391,8 +382,8 @@ _button_dec_start_cb(void *data, if (sd-entry_visible) { -_reset_value(data); -return; +_entry_value_apply(obj); +if ((sd-val_updated) (sd-val == sd-val_max)) return; } _val_dec_start(data); } @@ -979,8 +970,17 @@ _elm_spinner_value_set(Eo *obj, void *_pd, va_list *list) if (sd-val == val) return; sd-val = val; - if (sd-val sd-val_min) sd-val = sd-val_min; - if (sd-val sd-val_max) sd-val = sd-val_max; + sd-val_updated = EINA_FALSE; + if (sd-val sd-val_min) + { +sd-val = sd-val_min; +sd-val_updated = EINA_TRUE; + } + if (sd-val sd-val_max) + { +sd-val = sd-val_max; +sd-val_updated = EINA_TRUE; + } _val_set(obj); _label_write(obj); } diff --git a/src/lib/elm_widget_spinner.h b/src/lib/elm_widget_spinner.h index 119771d..4c39f2c 100644 --- a/src/lib/elm_widget_spinner.h +++ b/src/lib/elm_widget_spinner.h @@ -26,7 +26,7 @@ struct _Elm_Spinner_Smart_Data { Evas_Object *ent; const char *label; - doubleval, val_min, val_max, orig_val, val_base; + doubleval, val_min, val_max, val_base; doublestep; // step for the value change. 1 by default. doubledrag_start_val; // spinner value on drag start. // this is reset to 0 when drag stops. @@ -39,6 +39,7 @@ struct _Elm_Spinner_Smart_Data Eina_Bool dragging : 1; Eina_Bool editable : 1; Eina_Bool wrap : 1; + Eina_Bool val_updated : 1; }; typedef struct _Elm_Spinner_Special_Value Elm_Spinner_Special_Value; --