On Fri, Nov 06, 2015 at 03:13:46PM -0800, Jason Gerecke wrote: > On Thu, Nov 5, 2015 at 8:31 PM, Peter Hutterer <peter.hutte...@who-t.net> > wrote: > > > > This set adds support for graphics tablets to weston. It's not fully > > complete, there are a couple of fixmes in it but the patchset is getting a > > bit unwieldly. And there are some discussions on how to do things anyway. > > > > Note: This needs the tablet-support branch from libinput to work. And it is > > on top of Jonas's wip/wayland-protocols github branch (ff0452cea150c). > > > > Tablet events are sent serially, terminated by a frame event. A toolkit > > should accumulate them and then pass them on as one struct to the client. We > > don't do that atm, it may be beyond libtoytoolkit's scope to really > > integrate this properly. > > > > The tablet has a separate cursor. That's a conscious decision since the > > focus handling on tablets closer to an absolute touch screen than a mouse, > > but unlike touch you usually want a cursor shape to indicate the precise > > position. > > > > The rest is fairly straightforward, though as said above, some details are > > missing. Implementing this also showed that libinput needs a few extra > > things added to it. > > > > Cheers, > > Peter > > Having trouble getting this patchset to work properly for me. Of the > many times I've launched 'weston-tablet', only once did it work as > expected. The rest of the time I get no response and more often than > not a segfault when the pen leaves proximity (first backtrace). I've > also seen a segfault when simply trying to exit Weston with > CTRL+ALT+BACKSPACE (second backgrace). > > Haven't had time to track down the cause; all I know at the moment is > that it seems the demo client's proximity_in_handler isn't actually > being called for some reason...
fwiw, the reason for this bug was: http://lists.freedesktop.org/archives/wayland-devel/2016-February/026765.html Cheers, Peter > > > Program received signal SIGSEGV, Segmentation fault. > 0x000000000041596f in default_grab_tablet_tool_proximity_out > (grab=0x20e8388, time=23980253) at src/input.c:812 > 812 if (weston_surface_is_mapped(tool->sprite->surface)) > (gdb) bt > #0 0x000000000041596f in default_grab_tablet_tool_proximity_out > (grab=0x20e8388, time=23980253) at src/input.c:812 > #1 0x0000000000418ffb in notify_tablet_tool_proximity_out > (tool=0x20e82d0, time=23980253) at src/input.c:2307 > #2 0x00007fe3699a6ce1 in handle_tablet_proximity > (libinput_device=0x1c1d7c0, proximity_event=0x20e0580) at > src/libinput-device.c:320 > #3 0x00007fe3699a7587 in evdev_device_process_event (event=0x20e0580) > at src/libinput-device.c:543 > #4 0x00007fe3699a5cf3 in process_event (event=0x20e0580) at > src/libinput-seat.c:169 > #5 0x00007fe3699a5d14 in process_events (input=0x1b07c88) at > src/libinput-seat.c:179 > #6 0x00007fe3699a5d79 in udev_input_dispatch (input=0x1b07c88) at > src/libinput-seat.c:190 > #7 0x00007fe3699a5da6 in libinput_source_dispatch (fd=16, mask=1, > data=0x1b07c88) at src/libinput-seat.c:200 > #8 0x00007fe36b3bcc72 in wl_event_loop_dispatch (loop=0x1aef220, > timeout=timeout@entry=-1) at src/event-loop.c:422 > #9 0x00007fe36b3bb5e5 in wl_display_run (display=0x1aef190) at > src/wayland-server.c:1004 > #10 0x00000000004275c6 in main (argc=1, argv=0x7ffe86bcca88) at src/main.c:871 > > > Program received signal SIGSEGV, Segmentation fault. > 0x00007f3f3e63a0e7 in wl_list_remove (elm=0x195a910) at src/wayland-util.c:57 > 57 elm->prev->next = elm->next; > (gdb) bt > #0 0x00007f3f3e63a0e7 in wl_list_remove (elm=0x195a910) at > src/wayland-util.c:57 > #1 0x000000000041550f in weston_tablet_destroy (tablet=0x195a8e0) at > src/input.c:699 > #2 0x000000000041a9df in weston_seat_release_tablet > (tablet=0x195a8e0) at src/input.c:3116 > #3 0x00007f3f3cc22ff3 in evdev_device_destroy (device=0x19acc80) at > src/libinput-device.c:867 > #4 0x00007f3f3cc20bc6 in udev_seat_remove_devices (seat=0x19a8fa0) at > src/libinput-seat.c:126 > #5 0x00007f3f3cc21427 in udev_seat_destroy (seat=0x19a8fa0) at > src/libinput-seat.c:397 > #6 0x00007f3f3cc211b0 in udev_input_destroy (input=0x1852c88) at > src/libinput-seat.c:333 > #7 0x00007f3f3cc1f5f7 in drm_destroy (ec=0x183bfc0) at > src/compositor-drm.c:2712 > #8 0x000000000041379f in weston_compositor_destroy > (compositor=0x183bfc0) at src/compositor.c:4780 > #9 0x00000000004275f1 in main (argc=1, argv=0x7ffdd6f32308) at src/main.c:882 > > Jason > --- > Now instead of four in the eights place / > you’ve got three, ‘Cause you added one / > (That is to say, eight) to the two, / > But you can’t take seven from three, / > So you look at the sixty-fours.... > _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel