diff --git a/src/bin/e_scrollframe.c b/src/bin/e_scrollframe.c index 3d78b51bd..7ae68f0e9 100644 --- a/src/bin/e_scrollframe.c +++ b/src/bin/e_scrollframe.c @@ -658,24 +658,28 @@ _e_smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void (e_config->thumbscroll_threshhold * e_config->thumbscroll_threshhold))) { - if (!sd->down.dragged) - evas_event_feed_hold(e, 1, ev->timestamp, ev->data); - ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; - sd->down.dragged = 1; - x = sd->down.sx - (ev->cur.canvas.x - sd->down.x); - y = sd->down.sy - (ev->cur.canvas.y - sd->down.y); - if ((sd->down.dir_x) || (sd->down.dir_y)) + if ((e_config->thumbscroll_enable) || + (sd->thumbscroll.forced)) { - if (!sd->down.locked) + if (!sd->down.dragged) + evas_event_feed_hold(e, 1, ev->timestamp, ev->data); + ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; + sd->down.dragged = 1; + x = sd->down.sx - (ev->cur.canvas.x - sd->down.x); + y = sd->down.sy - (ev->cur.canvas.y - sd->down.y); + if ((sd->down.dir_x) || (sd->down.dir_y)) { - sd->down.locked_x = x; - sd->down.locked_y = y; - sd->down.locked = 1; + if (!sd->down.locked) + { + sd->down.locked_x = x; + sd->down.locked_y = y; + sd->down.locked = 1; + } + if (sd->down.dir_x) y = sd->down.locked_y; + else x = sd->down.locked_x; } - if (sd->down.dir_x) y = sd->down.locked_y; - else x = sd->down.locked_x; + e_scrollframe_child_pos_set(sd->smart_obj, x, y); } - e_scrollframe_child_pos_set(sd->smart_obj, x, y); } } }