xartigas pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=4b1a1e85b2d77bccdc03ca6ece389aea4881d3ec

commit 4b1a1e85b2d77bccdc03ca6ece389aea4881d3ec
Author: Marcel Hollerbach <m...@marcel-hollerbach.de>
Date:   Tue Jul 16 13:59:40 2019 +0200

    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
---
 src/lib/elementary/efl_ui_slider.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

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

-- 


Reply via email to