GNOME Bugzilla – Bug 653066
ClutterDragAction does not support multiple pointers
Last modified: 2011-06-22 10:35:12 UTC
It should look at the device which is generating the motion events, and filter out those which were not used to start the dragging. I've attached a patch against 1.6 to fix this issue (should also apply cleanly against git master).
Created attachment 190331 [details] [review] patch to add multiple pointer support
Review of attachment 190331 [details] [review]: looks good in principle, though it needs some work. ::: clutter/clutter-drag-action.c @@ +79,3 @@ ClutterDragAxis drag_axis; + gint device_id; don't use the device id: it's not really unique and per-platform. use the pointer: that has a higher guarantee, and you can still compare it with equality. @@ +251,3 @@ return FALSE; + gint device_id = clutter_event_get_device_id (event); no C99 please - declarations should not follow statements. @@ +309,3 @@ priv->press_state = clutter_event_get_state (event); + priv->device_id = clutter_event_get_device_id(event); this should just be: priv->device = clutter_event_get_device (event); note the space between the function name and the (), to conform to the coding style.
Created attachment 190362 [details] [review] fix up patch per review
Review of attachment 190362 [details] [review]: looks good.
Attachment 190362 [details] pushes to master. Thanks for the patch!