summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-07-16 13:59:40 +0200
committerXavi Artigas <xavierartigas@yahoo.es>2019-07-16 16:37:29 +0200
commit4b1a1e85b2d77bccdc03ca6ece389aea4881d3ec (patch)
tree4f115455d448d0e298c4a1c739fbc38f82248084
parent059e82d4c1c7a49bae40b83178a9efb7e3be1175 (diff)
downloadefl-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.c8
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