aboutsummaryrefslogtreecommitdiff
path: root/unstable/pointer-gestures
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2016-07-11 17:13:35 +0200
committerJonas Ådahl <jadahl@gmail.com>2016-07-20 15:20:04 +0800
commit8123c92b6f03912bbc95051af75a4eb81c335bd1 (patch)
tree21159408c814d28e398050502fc7cbd507e4e053 /unstable/pointer-gestures
parentbbd5c7f94e042bfff5dbe104b2484d60815bf798 (diff)
tablet: restrict the cursor surface to one per tool
The initial approach was to allow one surface to be re-used between tools, seats and even used together as wl_pointer cursor surface. This has a few drawbacks, most of which are related to managing the surface correctly in the compositor. For example, the same cursor surface could have two different hotspots. Animated cursors should animate independently rather than update at the same time. Furthermore: a client cannot know when a surface will cease being used as a cursor surface. The basic assumption of "after focus out" is an implementation detail in the compositor and unless the client unsets the cursor it is not guaranteed that the surface is released. This again makes sharing a surface less obvious - you cannot know if the wl_pointer surface is still in use when you set it for a new wp_tablet_tool. Avoid these headaches (and push some of them to the client) by simply restricting a wl_surface to be assigned to a single tool. For the 99% use case where we have one tablet with two tools (pen + eraser) this means we merely get two extra surfaces, and the two don't usually share the same cursor shape anyway. If sharing is absolutely necessary, a client may still opt to share the underlying wl_buffer. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Diffstat (limited to 'unstable/pointer-gestures')
0 files changed, 0 insertions, 0 deletions