Markus Ongyerth
36955204cf
Remove last remnant of tool_tool in libinput
7 years ago
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.
7 years ago
Markus Ongyerth
48e2cba9b6
Handle relative motion for mouse tools
7 years ago
Markus Ongyerth
3be916f9b8
Add asserts and rename destroy function in libinput backend
7 years ago
Markus Ongyerth
0c9a26828a
Use wlr_list for paths, and improve inert resource handling
7 years ago
Markus Ongyerth
adba68a3c1
Use tablet_tool impl in libinput backend
7 years ago
Markus Ongyerth
31cec36b74
1st feedback pass
...
Rename make_ functions to _create
Implement set_cursor and set_feedback
7 years ago
Markus Ongyerth
599f84f736
Fix borked rebase
7 years ago
Markus Ongyerth
5c7a37f309
Add tool buttons
7 years ago
Markus Ongyerth
391eef6ea9
Propagate most axis events to clients
7 years ago
Markus Ongyerth
f375246657
Implement basic tablet_pad handling (bound to keyboard focus)
7 years ago
Markus Ongyerth
e235f7d336
Basic tablet_v2 object lifetime
7 years ago
Markus Ongyerth
77bac448cc
storage commit #2
7 years ago
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.
7 years ago
emersion
7cbef15206
util: add wlr_ prefix to log symbols
7 years ago
Scott Anderson
47985d2dc5
Multiseat fixes
7 years ago
emersion
0b58579564
Add support for discrete axis values
7 years ago
morganamilo
6305e6327f
Fix typos in comments and strings
7 years ago
emersion
2551ef8871
input-device: add output_name field, populate it from libinput
7 years ago
emersion
79da4c175e
backend/headless: remove useless destructor
7 years ago
emersion
625a7a48dc
Don't use the wlr_ prefix for static functions
7 years ago
emersion
71ca45e2c0
Make sure we don't use others' prefixes
7 years ago
emersion
b0d99f5c67
Remove wlr_ prefix from local symbols
7 years ago
Drew DeVault
56deff41b6
Implement input inhibit in rootston
7 years ago
Drew DeVault
ac219cbda6
Remove width_mm from tablet events
7 years ago
Drew DeVault
324b9d910d
Remove width_mm from wlr_touch events
7 years ago
Drew DeVault
a35a5786b0
Remove width_mm from wlr_pointer events
7 years ago
Drew DeVault
bfc0e95d2c
Add mode support to libinput backend
...
And extend tablet example with tilt and ring support
7 years ago
Scott Anderson
3c9fc7c68e
Add const to x11 and input interfaces
7 years ago
Dan Robertson
99e6cba3c3
Fix null deref in wlr_libinput_backend_destroy
...
If input_event is null (e.g. if backend_start has not been called yet)
wl_event_source_remove will result in a null deref.
7 years ago
Drew DeVault
1d9be89e2d
Revert "ELF Visibility"
7 years ago
Scott Anderson
86269052eb
Explicitly export EFL symbols
7 years ago
Scott Anderson
f27c0b44b8
Remove usec_to_msec from public API
7 years ago
emersion
c2e1474010
Reformat all #include directives
7 years ago
emersion
36ead80cd1
Make wlr_signal_emit_safe private
7 years ago
emersion
10ecf871f2
Remove wlr_backend.events.{output_remove,device_remove}
7 years ago
emersion
5e58d46cc1
Add wlr_signal_emit_safe
7 years ago
emersion
babdd6ccf7
backend: fix use-after-free when destroying backends
...
The backend destroy signal is emitted before the output_remove
signal is. When the destroy signal is emitted listeners remove
their output_remove listener, so the output_remove signal is never
received and listeners have an invalid output pointer.
The correct way to solve this would be to remove the output_remove
signal completely and use the wlr_output.events.destroy signal
instead. This isn't yet possible because wl_signal_emit is unsafe
and listeners cannot be removed in listeners.
7 years ago
Dominique Martinet
3e228b0b2a
libinput backend: add wlr_input_device_is_libinput
7 years ago
emersion
9d43adaafa
Listen to display destroy in backends
7 years ago
emersion
016744ef4d
Refactor wlr_list inside wlroots
7 years ago
Tony Crisci
f61986e8db
rename touch slot to touch id
7 years ago
emersion
bb79ada49f
Fix a bunch of mistakes detected with scan-build
7 years ago
Drew DeVault
6d8e1abfc0
Improve input sensitivity
...
We now use doubles until the last minute, which makes it so we can move
the pointer more precisely. This also includes a fix for tablet tools,
which move absolutely and sometimes do not update the X or Y axis.
7 years ago
Dominique Martinet
b53db8c39e
libinput backend destroy: fix small leak
7 years ago
Dominique Martinet
43cd3c7aea
Indentation fix
...
Some space sneaked in. tabtabtab.
7 years ago
Dominique Martinet
e3ee2cd9c7
rootston exit: fix libinput destroy
...
The wlr_list -> wl_list rework changed 'wlr_devices' to
wl_list, but missed its use on destroy.
7 years ago
Tony Crisci
875a5b446f
remove time usec
7 years ago
Tony Crisci
a224e74fad
refactor input time_sec to time_msec
7 years ago
Drew DeVault
c5fff08f8a
Forgot to rename these
7 years ago
Drew DeVault
169b68b17c
Rename remaining refs to wlr_list
7 years ago
Heghedus Razvan
e1f196a3e9
Replace list_t with wl_list for wlr_input_device
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
7 years ago
D.B
7cdc19d57f
Fix duplicated pointer axis events
...
In pointer.c, some axis event was emitted even if the event pointer did not have
current axis.
In X11 backend pointer scroll events seem to be composed of both BUTTON_PRESS
and BUTTON_RELEASE. Therefore we should skip one of them (RELEASE) to avoid
event duplication.
7 years ago
Versus Void
568b270cdf
Use xkb_state_update_mask() with Wayland backend
...
Fix #158
7 years ago
Tony Crisci
0f56326cb8
fix libinput wlr-keyboard use after free
7 years ago
Drew DeVault
61e451ea1b
Move keyboard logic to wlr_{keyboard,seat}
7 years ago
Drew DeVault
6daf9e9ab2
Merge pull request #120 from acrisci/feature/wlr-cursor
...
wlr_cursor
7 years ago
Tony Crisci
df0ee7f25f
implement tablet tool devices
7 years ago
Tony Crisci
c914697676
add device to touch events
7 years ago
Tony Crisci
98f4cdfccb
implement wlr_cursor_map_input_to_output
7 years ago
Scott Anderson
fb93628bda
Merge wlr_udev into wlr_session
7 years ago
Dominique Martinet
12782eabfe
libinput: wl_event_source_remove on destroy
7 years ago
Drew DeVault
beb84940cf
Improve no device detection support
7 years ago
Drew DeVault
3ac10a81bd
Merge pull request #94 from martinetd/libinput_no_device
...
libinput: fail if no input found on init
7 years ago
Calvin Lee
901c14c409
Prevent alloc errors from crashing in `list_t`
...
This commit changes the `list_t` api so that alloc errors can be
detected and worked around. Also fixes errors not found in 5cc7342
7 years ago
Dominique Martinet
880c239657
libinput: fail if no input found on init
...
This runs through events pending at init on initialization so we can
tell if some devices are available.
Note that with the way wlr_device_lists is managed, this checks that
there is at least one device we handle - it doesn't have to be a
keyboard, but there is at least a mouse or tablet_pad or something
that we care about.
Instead of failing inconditionally it might be better to leave the
decision to the user, e.g. add a "backend_has_devices" function to
call later.
(Tested by moving /dev/input off)
Fixes #24 .
7 years ago
Drew DeVault
27c13d621d
Merge pull request #88 from 4e554c4c/alloc_crashing
...
Prevent alloc errors from crashing
7 years ago
Calvin Lee
5cc7342606
Prevent alloc errors from crashing
...
Resolves #76
7 years ago
nyorain
f998bb8299
Fix style issues
7 years ago
Dominique Martinet
ba20d5b3ca
Refactor out wlr_touch_state
7 years ago
Dominique Martinet
bd67849c03
Refactor out wlr_tablet_tool_state
7 years ago
Dominique Martinet
a289940bff
Refactor out wlr_tablet_pad_state
7 years ago
Dominique Martinet
53e7bebd23
Refactor out wlr_pointer_state
7 years ago
Dominique Martinet
0a3246ad97
Refactor out wlr_keyboard_state
7 years ago
Dominique Martinet
e6ad67911b
Refactor out wlr_input_device_state
7 years ago
Calvin Lee
de66bdb867
Add backend detection functions
...
Resolves #80
7 years ago
Drew DeVault
4386816889
wlr_backend_init -> wlr_backend_start
...
Also renames create to init. We'll use create for anything that
allocates and init for anything that takes a pointer and initializes it.
7 years ago
Dominique Martinet
5c82d2f5c3
libinput backend: massive renaming
...
- 'libinput' (backend's) to libinput_context
- 'device' (libinput_device) to libinput_dev
- 'dev' (wlr_device) to wlr_dev
- 'devices' lists tangling of libinput devices to wlr_devices
- 'devices' list of wlr_devices in backend state to wlr_device_lists
7 years ago
Dominique Martinet
08a2afdf6f
libinput backend: match logging for removal and add
...
Only log removal of devices once, but also log it for devices
that we do not care about.
7 years ago
Dominique Martinet
701e147b9b
libinput: remove useless get_context call
...
That function is literally just "return event->device->seat->libinput"
We do not use context, so do not fetch it.
7 years ago
Drew DeVault
60d1131df2
Re-enable backend autoselection
7 years ago
Drew DeVault
c95a108d2f
Update libinput backend with new state design
7 years ago
Dominique Martinet
3e2cb5b5cf
libinput: fix segfault when handling non-wlr device removal
7 years ago
Dominique Martinet
de86965174
Use libinput_event_destroy/xkb_*_unref
...
Also sneak in a missing drmModeFreePlaneResources
7 years ago
Dominique Martinet
e1293a7853
libinput: signal input remove on libinput backend destroy
...
This lets the upper crust cleanup and free their own states
7 years ago
Dominique Martinet
be3a0ad065
libinput backend: fill in handle_device_removed
...
And fix input_remove_notify accordingly
7 years ago
Dominique Martinet
c42674bc25
Fix libinput destroy for devices with multiple capabilities
7 years ago
Dominique Martinet
0354aaeff2
Complete a few destroy functions
...
This adds missing free calls for:
- drm outputs
- libinput backend in general
- final udev free
- output mode state
7 years ago
Dominique Martinet
0663b6d1e1
Build libinput events on the stack instead of allocating
7 years ago
Scott Anderson
cb4d50e22c
Changed header paths.
7 years ago
Drew DeVault
3d71969b2a
Make event names consistent
8 years ago
Drew DeVault
f4453d104d
Reorganize wlr-common
8 years ago
Drew DeVault
fd91244e83
Update everyone to use new headers
8 years ago
Scott Anderson
55854565dc
Fixed VT switching
8 years ago
Drew DeVault
632a04f1b7
Implement keyboard LEDs
8 years ago
Drew DeVault
ecb04afcad
Implement tablet pads
8 years ago
Drew DeVault
def3d7c64f
Add tablet example
8 years ago
Drew DeVault
4a9966b1a4
Implement wlr_tablet_tool
8 years ago
Drew DeVault
3f24f8a1be
Flesh out touch events and add demo
8 years ago
Drew DeVault
d6905f86cb
Allocate wlr_touch devices
8 years ago
Drew DeVault
a63230e59c
Implement libinput wlr_pointer
8 years ago
Drew DeVault
5dd96c0772
Incorporate XKBCommon into example
8 years ago
Drew DeVault
508d135de7
Only allocate device state when it will be used
...
This design also avoids double frees in the future when we're creating
several wlr_input_devices from one libinput_device.
8 years ago
Drew DeVault
7a5f35b5bb
Reassign ownership of libinput handle
8 years ago
Drew DeVault
f479b7c8c7
Split keyboard code out into its own file
8 years ago
Drew DeVault
59ceaf507e
Handle key presses
8 years ago
Drew DeVault
0e75d157f5
Initialize keyboards from libinput
8 years ago
Drew DeVault
019fff06be
Fix issues, flesh out event handling somewhat
8 years ago
Drew DeVault
af69591e62
Add error handling and init in backend_autocreate
8 years ago
Drew DeVault
1262f1400c
Initial pass on libinput backend
8 years ago