diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2019-07-16 13:59:40 +0200 |
---|---|---|
committer | Xavi Artigas <xavierartigas@yahoo.es> | 2019-07-16 16:37:29 +0200 |
commit | 4b1a1e85b2d77bccdc03ca6ece389aea4881d3ec (patch) | |
tree | 4f115455d448d0e298c4a1c739fbc38f82248084 | |
parent | 059e82d4c1c7a49bae40b83178a9efb7e3be1175 (diff) | |
download | efl-4b1a1e85b2d77bccdc03ca6ece389aea4881d3ec.tar.gz |
efl_ui_slider: fix focus interaction
Summary:
when we move the slider up or down, we might be at the minimum or
maximu, if this is the case. Then we must not eat the key event,
otherwise focus is stuck on this widget.
Depends on D9328
Reviewers: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9329
-rw-r--r-- | src/lib/elementary/efl_ui_slider.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index 7deda127db..2714cce3d5 100644 --- a/src/lib/elementary/efl_ui_slider.c +++ b/src/lib/elementary/efl_ui_slider.c @@ -220,6 +220,7 @@ _drag_up(void *data, else efl_ui_drag_step_move(efl_part(wd->resize_obj, "efl.dragable.slider"), relative_step, relative_step); + _slider_update(data, EINA_TRUE); } static void @@ -244,6 +245,7 @@ _drag_down(void *data, else efl_ui_drag_step_move(efl_part(wd->resize_obj, "efl.dragable.slider"), relative_step, relative_step); + _slider_update(data, EINA_TRUE); } static Eina_Bool @@ -251,6 +253,9 @@ _key_action_drag(Evas_Object *obj, const char *params) { EFL_UI_SLIDER_DATA_GET(obj, sd); const char *dir = params; + double old_value, new_value; + + old_value = efl_ui_range_value_get(obj); if (!strcmp(dir, "left")) { @@ -286,7 +291,8 @@ _key_action_drag(Evas_Object *obj, const char *params) } else return EINA_FALSE; - return EINA_TRUE; + new_value = efl_ui_range_value_get(obj); + return !EINA_DBL_EQ(new_value, old_value); } // _slider_efl_ui_widget_widget_input_event_handler |