forked from enlightenment/efl
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
This commit is contained in:
parent
1051a1ca46
commit
695dfb650a
|
@ -549,10 +549,13 @@ _elm_slider_val_fetch(Evas_Object *obj, Elm_Slider_Data *pd, Eina_Bool user_even
|
||||||
if (efl_ui_layout_orientation_is_horizontal(sd->dir, EINA_TRUE)) pos = posx;
|
if (efl_ui_layout_orientation_is_horizontal(sd->dir, EINA_TRUE)) pos = posx;
|
||||||
else pos = posy;
|
else pos = posy;
|
||||||
|
|
||||||
|
if (pd->intvl_enable)
|
||||||
|
{
|
||||||
efl_ui_drag_value_get(efl_part(wd->resize_obj, "elm.dragable2.slider"),
|
efl_ui_drag_value_get(efl_part(wd->resize_obj, "elm.dragable2.slider"),
|
||||||
&posx2, &posy2);
|
&posx2, &posy2);
|
||||||
if (efl_ui_layout_orientation_is_horizontal(sd->dir, EINA_TRUE)) pos2 = posx2;
|
if (efl_ui_layout_orientation_is_horizontal(sd->dir, EINA_TRUE)) pos2 = posx2;
|
||||||
else pos2 = posy2;
|
else pos2 = posy2;
|
||||||
|
}
|
||||||
|
|
||||||
if (efl_ui_mirrored_get(obj) ^ efl_ui_layout_orientation_is_inverted(sd->dir))
|
if (efl_ui_mirrored_get(obj) ^ efl_ui_layout_orientation_is_inverted(sd->dir))
|
||||||
{
|
{
|
||||||
|
@ -562,10 +565,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;
|
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)
|
if (pd->intvl_enable)
|
||||||
{
|
{
|
||||||
|
val2 = (pos2 * (sd->val_max - sd->val_min)) + sd->val_min;
|
||||||
if (!inverted)
|
if (!inverted)
|
||||||
{
|
{
|
||||||
if (val > id->intvl_to)
|
if (val > id->intvl_to)
|
||||||
|
@ -606,7 +609,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;
|
id->intvl_to = val2;
|
||||||
/* avoid emitting two events and setting a timer twice */
|
/* avoid emitting two events and setting a timer twice */
|
||||||
|
@ -620,7 +623,7 @@ _elm_slider_val_fetch(Evas_Object *obj, Elm_Slider_Data *pd, Eina_Bool user_even
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
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)
|
||||||
{
|
{
|
||||||
double pos, pos2;
|
double pos, pos2;
|
||||||
|
|
||||||
|
@ -655,6 +658,7 @@ _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"),
|
efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable.slider"),
|
||||||
pos, pos);
|
pos, pos);
|
||||||
|
if (pd->intvl_enable)
|
||||||
efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable2.slider"),
|
efl_ui_drag_value_set(efl_part(wd->resize_obj, "elm.dragable2.slider"),
|
||||||
pos2, pos2);
|
pos2, pos2);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue