compositor-drm: Enable seat constraining when configured in weston.ini
authorRob Bradford <rob@linux.intel.com>
Tue, 25 Jun 2013 17:56:42 +0000 (18:56 +0100)
committerJonas Ådahl <jadahl@gmail.com>
Sat, 16 Nov 2013 20:54:07 +0000 (21:54 +0100)
This change tweaks weston_pointer_clamp to take into consideration if a
seat is constrained to a particular output by only considering the
pointer position valid if it is within the output we a constrained to.
This function is also used for the initial warping of the pointer when a
constraint is first established.

The other two changes are the application of the constraint when either
a new device added or a new output created and therefore outputs and
input devices can be brought up in either order.

v2: the code in create_output_for_connector has been spun off into a
new function setup_output_seat_constraint (Ander). The inappropriate
warping behaviour has been resolved by using weston_pointer_clamp
(Pekka).

src/udev-seat.c

index bd25535..ec6dc4b 100644 (file)
@@ -115,6 +115,11 @@ device_added(struct udev_device *udev_device, struct udev_input *input)
 
        wl_list_insert(seat->devices_list.prev, &device->link);
 
+       if (seat->base.output && seat->base.pointer)
+               weston_pointer_clamp(seat->base.pointer,
+                                    &seat->base.pointer->x,
+                                    &seat->base.pointer->y);
+
        return 0;
 }