forked from enlightenment/terminology
try to fix some link/selection mess
This commit is contained in:
parent
d746dccf4a
commit
e710205122
|
@ -318,20 +318,21 @@ _cb_link_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
|
||||||
{
|
{
|
||||||
Evas_Event_Mouse_Up *ev = event;
|
Evas_Event_Mouse_Up *ev = event;
|
||||||
Termio *sd = evas_object_smart_data_get(data);
|
Termio *sd = evas_object_smart_data_get(data);
|
||||||
Evas_Coord dx, dy;
|
|
||||||
|
|
||||||
if (!sd) return;
|
if (!sd) return;
|
||||||
dx = abs(ev->canvas.x - sd->link.down.x);
|
|
||||||
dy = abs(ev->canvas.y - sd->link.down.y);
|
|
||||||
if ((ev->button == 1) && (sd->link.down.down) &&
|
|
||||||
((dx <= elm_config_finger_size_get()) &&
|
|
||||||
(dy <= elm_config_finger_size_get())))
|
|
||||||
{
|
|
||||||
if (sd->link_do_timer) ecore_timer_del(sd->link_do_timer);
|
|
||||||
sd->link_do_timer = ecore_timer_add(0.2, _cb_link_up_delay, data);
|
|
||||||
}
|
|
||||||
if ((ev->button == 1) && (sd->link.down.down))
|
if ((ev->button == 1) && (sd->link.down.down))
|
||||||
{
|
{
|
||||||
|
Evas_Coord dx, dy, finger_size;
|
||||||
|
|
||||||
|
dx = abs(ev->canvas.x - sd->link.down.x);
|
||||||
|
dy = abs(ev->canvas.y - sd->link.down.y);
|
||||||
|
finger_size = elm_config_finger_size_get();
|
||||||
|
|
||||||
|
if ((dx <= finger_size) && (dy <= finger_size))
|
||||||
|
{
|
||||||
|
if (sd->link_do_timer) ecore_timer_del(sd->link_do_timer);
|
||||||
|
sd->link_do_timer = ecore_timer_add(0.2, _cb_link_up_delay, data);
|
||||||
|
}
|
||||||
sd->link.down.down = EINA_FALSE;
|
sd->link.down.down = EINA_FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3137,7 +3138,8 @@ _smart_cb_mouse_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUS
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_smart_cb_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
_smart_cb_mouse_in(void *data, Evas *e EINA_UNUSED,
|
||||||
|
Evas_Object *obj EINA_UNUSED, void *event)
|
||||||
{
|
{
|
||||||
int cx, cy;
|
int cx, cy;
|
||||||
Evas_Event_Mouse_In *ev = event;
|
Evas_Event_Mouse_In *ev = event;
|
||||||
|
@ -3152,17 +3154,30 @@ _smart_cb_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_smart_cb_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj,
|
_smart_cb_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj,
|
||||||
void *event EINA_UNUSED)
|
void *event)
|
||||||
{
|
{
|
||||||
Termio *sd;
|
Termio *sd;
|
||||||
|
Evas_Event_Mouse_Out *ev = event;
|
||||||
|
|
||||||
sd = evas_object_smart_data_get(data);
|
sd = evas_object_smart_data_get(data);
|
||||||
if (!sd) return;
|
if (!sd) return;
|
||||||
termio_mouseover_suspend_pushpop(data, 1);
|
termio_mouseover_suspend_pushpop(data, 1);
|
||||||
ty_dbus_link_hide();
|
ty_dbus_link_hide();
|
||||||
sd->mouse.cx = -1;
|
if ((ev->canvas.x == 0) || (ev->canvas.y == 0))
|
||||||
sd->mouse.cy = -1;
|
{
|
||||||
_remove_links(sd, obj);
|
sd->mouse.cx = -1;
|
||||||
|
sd->mouse.cy = -1;
|
||||||
|
sd->link.suspend = EINA_FALSE;
|
||||||
|
_remove_links(sd, obj);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int cx, cy;
|
||||||
|
|
||||||
|
_smart_xy_to_cursor(data, ev->canvas.x, ev->canvas.y, &cx, &cy);
|
||||||
|
sd->mouse.cx = cx;
|
||||||
|
sd->mouse.cy = cy;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue