From: Marcel Hollerbach Date: Tue, 16 Jul 2019 11:59:40 +0000 (+0200) Subject: efl_ui_slider: fix focus interaction X-Git-Tag: accepted/tizen/unified/20190722.074730~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5337a0a2e4b2b75205ebbb9afc98427ac78b1be1;p=platform%2Fupstream%2Fefl.git 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 --- diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index 3c458d3..513e00d 100644 --- a/src/lib/elementary/efl_ui_slider.c +++ b/src/lib/elementary/efl_ui_slider.c @@ -222,6 +222,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 @@ -246,6 +247,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 @@ -253,6 +255,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")) { @@ -288,7 +293,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