zmike pushed a commit to branch efl-1.22. http://git.enlightenment.org/core/efl.git/commit/?id=2cc5f8f9aa157cbde6f53bc810cdf55b15f0a07e
commit 2cc5f8f9aa157cbde6f53bc810cdf55b15f0a07e Author: Mike Blumenkrantz <[email protected]> Date: Wed May 29 09:22:25 2019 -0400 elm/slider: check for interval/range state before using that functionality Summary: the part elm.dragable2.slider only exists when the slider is set to range mode, so verify that this mode is active before attempting to use that part @fix Depends on D8968 Reviewers: cedric Reviewed By: cedric Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8969 --- src/lib/elementary/elm_slider.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/lib/elementary/elm_slider.c b/src/lib/elementary/elm_slider.c index 54c433eda6..25c48595fd 100644 --- a/src/lib/elementary/elm_slider.c +++ b/src/lib/elementary/elm_slider.c @@ -578,10 +578,13 @@ _elm_slider_val_fetch(Evas_Object *obj, Elm_Slider_Data *pd, Eina_Bool user_even if (efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) pos = posx; else pos = posy; - efl_ui_drag_value_get(efl_part(wd->resize_obj, "elm.dragable2.slider"), - &posx2, &posy2); - if (efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) pos2 = posx2; - else pos2 = posy2; + if (pd->intvl_enable) + { + efl_ui_drag_value_get(efl_part(wd->resize_obj, "elm.dragable2.slider"), + &posx2, &posy2); + if (efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) pos2 = posx2; + else pos2 = posy2; + } rtl = efl_ui_mirrored_get(obj); if ((!rtl && _is_inverted(sd->dir)) || @@ -594,10 +597,10 @@ _elm_slider_val_fetch(Evas_Object *obj, Elm_Slider_Data *pd, Eina_Bool user_even } val = (pos * (sd->val_max - sd->val_min)) + sd->val_min; - val2 = (pos2 * (sd->val_max - sd->val_min)) + sd->val_min; if (pd->intvl_enable) { + val2 = (pos2 * (sd->val_max - sd->val_min)) + sd->val_min; if (!inverted) { if (val > id->intvl_to) @@ -638,7 +641,7 @@ _elm_slider_val_fetch(Evas_Object *obj, Elm_Slider_Data *pd, Eina_Bool user_even } } - if (fabs(val2 - id->intvl_to) > DBL_EPSILON) + if (pd->intvl_enable && fabs(val2 - id->intvl_to) > DBL_EPSILON) { id->intvl_to = val2; /* avoid emitting two events and setting a timer twice */ @@ -652,7 +655,7 @@ _elm_slider_val_fetch(Evas_Object *obj, Elm_Slider_Data *pd, Eina_Bool user_even } void -_elm_slider_val_set(Evas_Object *obj, Elm_Slider_Data *pd EINA_UNUSED) +_elm_slider_val_set(Evas_Object *obj, Elm_Slider_Data *pd) { Eina_Bool rtl; double pos, pos2; @@ -691,8 +694,9 @@ _elm_slider_val_set(Evas_Object *obj, Elm_Slider_Data *pd EINA_UNUSED) efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable.slider"), pos, pos); - efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable2.slider"), - pos2, pos2); + if (pd->intvl_enable) + efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable2.slider"), + pos2, pos2); // emit accessibility event also if value was changed by API if (_elm_config->atspi_mode) --
