fix on hold events for selection by scrollframe in e if thumbscroll is

off.



SVN revision: 78674
This commit is contained in:
Carsten Haitzler 2012-10-30 16:12:20 +00:00
parent aa1da25166
commit 3eb7dfc04e
1 changed files with 18 additions and 14 deletions

View File

@ -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 *
e_config->thumbscroll_threshhold))) e_config->thumbscroll_threshhold)))
{ {
if (!sd->down.dragged) if ((e_config->thumbscroll_enable) ||
evas_event_feed_hold(e, 1, ev->timestamp, ev->data); (sd->thumbscroll.forced))
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 (!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; if (!sd->down.locked)
sd->down.locked_y = y; {
sd->down.locked = 1; 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; e_scrollframe_child_pos_set(sd->smart_obj, x, y);
else x = sd->down.locked_x;
} }
e_scrollframe_child_pos_set(sd->smart_obj, x, y);
} }
} }
} }