efl_ui_slider: fix the error when scrolling.
When we use efl_ui_textbox and efl_ui_slider simultaneously, the slider invokes the general widget's scrolling hold and freeze behavior, which calls of the textbox's scrolling functions with an obvious error: sd->scroller = NULL. So switch off that in the slider and don't notice any lack of functionality. Saved sd->freeze as a flag for future use. Test: elementary_test -to Efl.Ui.Slider (before and after).
This commit is contained in:
parent
08e73fe2eb
commit
380c6d35db
|
@ -179,7 +179,6 @@ _drag_start(void *data,
|
|||
elm_object_focus_set(data, EINA_TRUE);
|
||||
efl_event_callback_call(data, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START, NULL);
|
||||
_drag_value_fetch(data);
|
||||
elm_widget_scroll_freeze_push(data);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -190,7 +189,6 @@ _drag_stop(void *data,
|
|||
{
|
||||
_drag_value_fetch(data);
|
||||
efl_event_callback_call(data, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, NULL);
|
||||
elm_widget_scroll_freeze_pop(data);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -505,10 +503,7 @@ _spacer_move_cb(void *data,
|
|||
if (d > (_elm_config->thumbscroll_threshold - 1))
|
||||
{
|
||||
if (!sd->frozen)
|
||||
{
|
||||
elm_widget_scroll_freeze_push(data);
|
||||
sd->frozen = EINA_TRUE;
|
||||
}
|
||||
sd->frozen = EINA_TRUE;
|
||||
ev->event_flags &= ~EVAS_EVENT_FLAG_ON_HOLD;
|
||||
}
|
||||
|
||||
|
@ -519,10 +514,7 @@ _spacer_move_cb(void *data,
|
|||
efl_event_callback_call
|
||||
(data, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, NULL);
|
||||
if (sd->frozen)
|
||||
{
|
||||
elm_widget_scroll_freeze_pop(data);
|
||||
sd->frozen = EINA_FALSE;
|
||||
}
|
||||
sd->frozen = EINA_FALSE;
|
||||
return;
|
||||
}
|
||||
if (_is_horizontal(sd->dir))
|
||||
|
@ -560,28 +552,7 @@ _spacer_up_cb(void *data,
|
|||
efl_event_callback_call(data, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, NULL);
|
||||
|
||||
if (sd->frozen)
|
||||
{
|
||||
elm_widget_scroll_freeze_pop(data);
|
||||
sd->frozen = EINA_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_mouse_in_cb(void *data EINA_UNUSED,
|
||||
Evas *e EINA_UNUSED,
|
||||
Evas_Object *obj,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
efl_ui_widget_scroll_hold_push(obj);
|
||||
}
|
||||
|
||||
static void
|
||||
_mouse_out_cb(void *data EINA_UNUSED,
|
||||
Evas *e EINA_UNUSED,
|
||||
Evas_Object *obj,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
efl_ui_widget_scroll_hold_pop(obj);
|
||||
}
|
||||
|
||||
static char *
|
||||
|
@ -657,11 +628,6 @@ _efl_ui_slider_efl_object_constructor(Eo *obj, Efl_Ui_Slider_Data *priv)
|
|||
(priv->spacer, EVAS_CALLBACK_MOUSE_MOVE, _spacer_move_cb, obj);
|
||||
evas_object_event_callback_add
|
||||
(priv->spacer, EVAS_CALLBACK_MOUSE_UP, _spacer_up_cb, obj);
|
||||
evas_object_event_callback_add
|
||||
(obj, EVAS_CALLBACK_MOUSE_IN, _mouse_in_cb, obj);
|
||||
evas_object_event_callback_add
|
||||
(obj, EVAS_CALLBACK_MOUSE_OUT, _mouse_out_cb, obj);
|
||||
|
||||
|
||||
efl_ui_widget_focus_allow_set(obj, EINA_TRUE);
|
||||
|
||||
|
|
Loading…
Reference in New Issue