Commit Graph

180 Commits

Author SHA1 Message Date
Drew DeVault
3ac10a81bd Merge pull request #94 from martinetd/libinput_no_device
libinput: fail if no input found on init
2017-08-16 07:22:36 -04:00
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
2017-08-16 09:23:21 +02:00
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.
2017-08-16 09:18:12 +02:00
Drew DeVault
27c13d621d Merge pull request #88 from 4e554c4c/alloc_crashing
Prevent alloc errors from crashing
2017-08-15 12:21:58 -04:00
Drew DeVault
d2e796edb7 Merge pull request #86 from nyorain/master
Fix style issues
2017-08-15 07:18:22 -04:00
Calvin Lee
5cc7342606 Prevent alloc errors from crashing
Resolves #76
2017-08-15 08:04:57 +02:00
nyorain
d7dcbbc175 Add wayland backend cursor support 2017-08-14 18:02:05 -04:00
nyorain
f998bb8299 Fix style issues 2017-08-14 17:09:56 +02:00
Dominique Martinet
e922e62924 wayland input_device_destroy: add missing braces 2017-08-14 16:30:10 +02:00
Dominique Martinet
4bbf718e7d impl->destroy cleanup:
- remove trivial destroy() function
 - make sure we check impl and impl->destroy before calling
 - always call free if not implemented
2017-08-14 16:22:31 +02:00
Dominique Martinet
ba20d5b3ca Refactor out wlr_touch_state 2017-08-14 16:22:31 +02:00
Dominique Martinet
bd67849c03 Refactor out wlr_tablet_tool_state 2017-08-14 16:22:31 +02:00
Dominique Martinet
a289940bff Refactor out wlr_tablet_pad_state 2017-08-14 16:22:31 +02:00
Dominique Martinet
53e7bebd23 Refactor out wlr_pointer_state 2017-08-14 16:22:31 +02:00
Dominique Martinet
0a3246ad97 Refactor out wlr_keyboard_state 2017-08-14 16:22:31 +02:00
Dominique Martinet
e6ad67911b Refactor out wlr_input_device_state 2017-08-14 16:22:31 +02:00
Dominique Martinet
9a9dd15d5f Fix wlr_multi_backend_add incorrect assert 2017-08-14 15:01:59 +02:00
Drew DeVault
c8c6619146 Refactor out wlr_output_mode_state 2017-08-14 08:03:51 -04:00
Calvin Lee
de66bdb867 Add backend detection functions
Resolves #80
2017-08-13 23:08:33 +02:00
Drew DeVault
41e735242d Remove wlr_output_state, update backends 2017-08-13 11:38:03 -04:00
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.
2017-08-13 10:19:57 -04:00
Drew DeVault
43fb40e949 Merge pull request #79 from martinetd/libinput_renaming
Libinput renaming
2017-08-13 08:29:42 -04:00
Drew DeVault
e6a7817e45 Fix build on systems without systemd 2017-08-13 08:21:57 -04:00
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
2017-08-13 08:18:05 +02:00
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.
2017-08-13 08:09:11 +02:00
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.
2017-08-13 08:07:44 +02:00
Dominique Martinet
f2e2794365 wayland backend: do not watch wayland fd for writable
Wayland fd is always writable and will busy-loop.
The dispatch function gets called with 0-mask when we need to flush
display anyway, so this saves CPU at no visible impact.
2017-08-13 07:53:33 +02:00
Drew DeVault
60d1131df2 Re-enable backend autoselection 2017-08-12 19:56:55 -04:00
Drew DeVault
234b2104e4 Refactor wlr_backend_state out of DRM backend 2017-08-12 19:52:22 -04:00
Drew DeVault
c95a108d2f Update libinput backend with new state design 2017-08-12 13:51:47 -04:00
Drew DeVault
81cd90297d Refactor out wlr_backend_state from wl/multi 2017-08-12 11:43:36 -04:00
Dominique Martinet
3e2cb5b5cf libinput: fix segfault when handling non-wlr device removal 2017-08-12 15:13:29 +02:00
Dominique Martinet
3ea878b76e wayland backend: free seatName 2017-08-12 01:19:45 +02:00
Dominique Martinet
8427749dd0 wayland backend: emit signal for input/output removal 2017-08-12 01:16:12 +02:00
Dominique Martinet
de86965174 Use libinput_event_destroy/xkb_*_unref
Also sneak in a missing drmModeFreePlaneResources
2017-08-12 00:11:18 +02:00
Dominique Martinet
e1293a7853 libinput: signal input remove on libinput backend destroy
This lets the upper crust cleanup and free their own states
2017-08-12 00:11:18 +02:00
Dominique Martinet
be3a0ad065 libinput backend: fill in handle_device_removed
And fix input_remove_notify accordingly
2017-08-12 00:11:18 +02:00
Dominique Martinet
c42674bc25 Fix libinput destroy for devices with multiple capabilities 2017-08-11 21:02:40 +02:00
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
2017-08-11 19:17:03 +02:00
Dominique Martinet
0663b6d1e1 Build libinput events on the stack instead of allocating 2017-08-11 18:38:27 +02:00
Drew DeVault
62d8b252c0 Refactor meson and move xdg-shell into wlroots 2017-08-11 09:37:09 -04:00
Drew DeVault
6569c2b626 Merge pull request #53 from nyorain/drm_buffer
Implement drm (egl) buffer attaching
2017-08-10 22:20:21 -04:00
Drew DeVault
c24351681f Refactor EGL handling 2017-08-10 22:15:37 -04:00
Scott Anderson
fe2fbd0fad Fix possible use of CRTC after monitor is unplugged 2017-08-11 11:12:41 +12:00
Drew DeVault
4aaf76cb66 wlr_output_update_matrix during wl backend init 2017-08-10 13:27:14 -04:00
nyorain
073dff63da Fix style issues 2017-08-10 11:05:18 +02:00
nyorain
67369173aa Implement drm (egl) buffer attaching 2017-08-10 10:59:58 +02:00
Scott Anderson
a77fac0760 Added null check on crtc 2017-08-10 01:43:42 +12:00
Scott Anderson
af67966d92 Atomic modesetting 2017-08-09 08:07:00 -04:00
nyorain
e167f41fde Rename wlr_surface -> wlr_texture; attach -> upload 2017-08-08 18:25:16 +02:00