Commit graph

3939 commits

Author SHA1 Message Date
Markus Ongyerth
454f2a84a8 tablet-v2 tablet_pad grab implementation
Implement the basic logic for tablet-v2 tablet_pad's grabs. And plug in
the default grab.
Features like "holding" the focus should be implemented via grabs, like
they are for pointer and keyboard.
2018-07-19 11:35:00 +02:00
Drew DeVault
83809cb7d2
Merge pull request #1145 from emersion/override-redirect-updates
xwayland: handle override_redirect flag changes
2018-07-18 12:42:05 -07:00
emersion
5dca4741df xwayland: make xwm_surface_activate static 2018-07-18 19:59:58 +01:00
emersion
153f37bdf5 xwayland: handle override_redirect flag changes
The override_redirect flag can change on configure notify and
on map notify. This adds an event to know when it changes.

This removes wlr_xwayland_surface_is_unmanaged which was wrongly
using the window type to decide whether the view should be
unmanaged.

A similar patch was proposed to Weston, but has never been
merged upstream [1].

[1]: https://patchwork.freedesktop.org/patch/211161/
2018-07-18 18:51:03 +01:00
emersion
ed26b19f05
Merge pull request #1144 from agx/doc-headless
Document WLR_HEADLESS_OUTPUTS
2018-07-18 16:30:16 +01:00
Guido Günther
cdbeaef5dd Document WLR_HEADLESS_OUTPUTS 2018-07-18 17:19:41 +02:00
Drew DeVault
2a58d4467f
Merge pull request #1136 from emersion/remove-unused-tablet-v2
Remove unused types/wlr_tablet_v2.c
2018-07-17 05:12:11 -07:00
emersion
4afd69bbe7 Remove unused types/wlr_tablet_v2.c 2018-07-17 11:14:43 +01:00
Drew DeVault
7f20ab6443
Merge pull request #960 from Ongy/tablet
tablet-unstable-v2 support
2018-07-16 20:10:38 -07:00
emersion
16d7e09d99 surface: add wlr_surface_role.precommit
This allows to emit the unmap event before the surface becomes
actually unmapped for most shells.
2018-07-15 19:30:19 +01:00
Markus Ongyerth
9a6f77fc2c tablet-v2: fix merge commits and test again
There were a few issues after rebase, that the merge algorithm didn't
throw at my face:

wlr_output did a check on the actual role, not a string anymore, so that
had to go to allow tablet-v2 to set cursor surfaces.
A few L_DEBUG/L_ERRORs were still around
There was a user-after-free in tablet-group free()ing, probably after
insufficient testing from a previous feedback pass
2018-07-14 10:29:22 +02:00
Markus Ongyerth
74ca2f8fcf Another round of feedback from acrisci 2018-07-14 09:52:34 +02:00
Markus Ongyerth
43b20bfea2 First feedback pass from acrisci 2018-07-14 09:52:05 +02:00
Markus Ongyerth
9313ac1068 propagate rename to rootston code 2018-07-14 09:51:26 +02:00
Markus Ongyerth
36955204cf Remove last remnant of tool_tool in libinput 2018-07-14 09:49:58 +02:00
Markus Ongyerth
d9e978e1b3 rename wlr_tablet_tool to wlr_tablet
The previous naming was based on the input-device capability names from
libinput.
With code that uses the libinput_tablet_tool and mapping into tablet-v2,
this is confusing, so the name is changed to follow the names used in
the protocol.
2018-07-14 09:49:58 +02:00
Markus Ongyerth
b84288af16 Remove unused tablet_pad list from tools 2018-07-14 09:48:57 +02:00
Markus Ongyerth
101080a382 Another feedback pass 2018-07-14 09:48:57 +02:00
Markus Ongyerth
6b51f3b57a use previous resource versions and destroy pads 2018-07-14 09:48:57 +02:00
Markus Ongyerth
48e2cba9b6 Handle relative motion for mouse tools 2018-07-14 09:48:57 +02:00
Markus Ongyerth
503f9d6e52 emersion feedback
Introduce TABLET_MANAGER_VERSION and remove the wlr_tablet_tool_tool.c
2018-07-14 09:48:57 +02:00
Markus Ongyerth
5cbdd13df8 remove unused wl_listener 2018-07-14 09:48:57 +02:00
Markus Ongyerth
3be916f9b8 Add asserts and rename destroy function in libinput backend 2018-07-14 09:48:57 +02:00
Markus Ongyerth
2bc09d91c3 Silent conversion from double to int should be illegal 2018-07-14 09:48:57 +02:00
Markus Ongyerth
dc525a9c5f Clean up serial handling and automate proximity acompaning events 2018-07-14 09:48:57 +02:00
Markus Ongyerth
25c2808153 Clean up serial handling 2018-07-14 09:48:57 +02:00
Markus Ongyerth
88a4b908d1 Hide pad auxiliary data in .c file 2018-07-14 09:48:57 +02:00
Markus Ongyerth
fa39fd178d Split tablet_v2 implementation for easier maintainance 2018-07-14 09:48:57 +02:00
Markus Ongyerth
2c12011472 Send all tablet tool axis events 2018-07-14 09:47:16 +02:00
Markus Ongyerth
6a40561e4c Fix clang build errors 2018-07-14 09:47:16 +02:00
Markus Ongyerth
2155c976f6 Improve inert resource handling 2018-07-14 09:47:16 +02:00
Markus Ongyerth
b79d11395c Hook up set_cursor in rootston 2018-07-14 09:47:16 +02:00
Markus Ongyerth
0c9a26828a Use wlr_list for paths, and improve inert resource handling 2018-07-14 09:43:17 +02:00
Markus Ongyerth
adba68a3c1 Use tablet_tool impl in libinput backend 2018-07-14 09:43:16 +02:00
Markus Ongyerth
31cec36b74 1st feedback pass
Rename make_ functions to _create
Implement set_cursor and set_feedback
2018-07-14 09:43:16 +02:00
Markus Ongyerth
15870ceb4b Fix segfaultiness 2018-07-14 09:40:39 +02:00
Markus Ongyerth
599f84f736 Fix borked rebase 2018-07-14 09:40:39 +02:00
Markus Ongyerth
5c7a37f309 Add tool buttons 2018-07-14 09:40:39 +02:00
Markus Ongyerth
391eef6ea9 Propagate most axis events to clients 2018-07-14 09:40:39 +02:00
Markus Ongyerth
f375246657 Implement basic tablet_pad handling (bound to keyboard focus) 2018-07-14 09:40:39 +02:00
Markus Ongyerth
f696e980f1 stabilise tablet_v2 code (prevent bunch of crashes) 2018-07-14 09:40:39 +02:00
Markus Ongyerth
e235f7d336 Basic tablet_v2 object lifetime 2018-07-14 09:40:39 +02:00
Markus Ongyerth
77bac448cc storage commit #2 2018-07-14 09:40:39 +02:00
Markus Ongyerth
4947295c8f convoluted tablet code 2018-07-14 09:40:39 +02:00
Markus Ongyerth
000b305ecc backend/libinput: Manage tablet tool livetimes
This adds the management code to manage tablet tools lifetimes from
libinput.
It follows the suggestion made in the tablet-unstable-v2.xml to destroy
tablet_tools once all tablets that it got into contact with were removed
from the system. This is implemented via a refcount.

If a tool is *not* unique, it will be destroyed on proximity out. This
is libinput specific and mentioned in libinput docs that tools will not
be found again, so we shouldn't keep a reference to them.
Also they can't be on other tablets as well, because they cannot be
tracked.

The naming in this commit is a bit off (to not break things).
The wlr names stay the same, tablet_tool is the libinput_device with
capaiblity LIBINPUT_DEVICE_CAP_TABLET_TOOL which is more akin to
"tablet" in the tablet-unstable-v2 protocol.
The struct that corresponds to the tablet_tool in tablet-unstable-v2 is
called tablet_tool_tool, a rename should be done at some point in the
future.
2018-07-14 09:40:39 +02:00
Markus Ongyerth
bf8751d632 Start tablet protocol 2018-07-14 09:40:39 +02:00
Drew DeVault
4984ea49ee
Merge pull request #1132 from emersion/fix-screencopy-frame-error
screencopy: fix segfault when client supplies invalid buffer
2018-07-13 12:49:12 -07:00
Drew DeVault
b902c2bd7c Revert "Move side-effect out of assert statement"
This reverts commit a0afedcd8f.
2018-07-13 15:46:54 -04:00
emersion
935a3f2ebb screencopy: fix segfault when client supplies invalid buffer 2018-07-13 19:27:04 +01:00
Drew DeVault
a0afedcd8f Move side-effect out of assert statement 2018-07-13 13:54:09 -04:00