evas: better handle async device creation of default mouse

instead of yolo setting the first pointer-ish device which is created,
check to see if a better match for "default mouse" can be applied

@fix
This commit is contained in:
Mike Blumenkrantz 2017-05-26 16:34:10 -04:00
parent d4ce9b1ac3
commit 6775b23212
1 changed files with 15 additions and 1 deletions

View File

@ -190,7 +190,21 @@ evas_device_add_full(Evas *eo_e, const char *name, const char *desc,
return NULL;
}
if (!e->default_mouse)
if (e->default_mouse)
{
int x, y;
if ((clas == EVAS_DEVICE_CLASS_MOUSE) &&
(parent_dev == e->default_seat) &&
(evas_device_class_get(e->default_mouse) != EVAS_DEVICE_CLASS_MOUSE))
{
evas_pointer_canvas_xy_get(eo_e, &x, &y);
evas_event_feed_mouse_out(eo_e, 0, NULL);
e->default_mouse = dev;
evas_event_feed_mouse_in(eo_e, 0, NULL);
}
}
else
e->default_mouse = dev;
}