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)))
{
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);
}
}
}