Commit Graph

271 Commits

Author SHA1 Message Date
Drakulix 81375a085f Allow relative mouse movement to be negative 2018-03-13 15:06:52 +01:00
Drakulix a6d8b2a802 Fix winit transformed input 2018-03-09 17:37:27 +01:00
Drakulix bdb653042c Update glium integration to allow mutable borrowing 2018-03-09 11:50:01 +01:00
Drakulix 9cb409de9b Add missing derives for AutoId 2018-02-26 18:56:28 +01:00
Victor Berger d8a5acef77 wayland: introduce Seat::owns 2018-02-26 16:20:33 +01:00
Drakulix 5cfdf931fb Update for wayland-server 0.14 2018-02-21 21:02:14 +01:00
Drakulix f4d3061b2b Fix tests & examples 2018-02-21 14:52:43 +01:00
Drakulix 85bac997e0 Fix merge with latest logind bug fixes 2018-02-21 14:52:31 +01:00
Drakulix 4a2658090b Code formatting 2018-02-21 14:24:37 +01:00
Drakulix 5d66f8fdb3 Give EventLoopHandle to DrmHandler 2018-02-21 14:24:20 +01:00
Drakulix b80674bdf5 Introduce SessionObserver
`DrmDevice` and `UdevBackend` now do not need to be wrapped into `StateToken`s anymore, but can return a separate `SessionObserver` object using the new `AsSessionObserver` trait.

This change was motivated by allowing the `UdevHandle` to obtain a mutable reference to an `EventLoopHandle` to create wayland object, e.g. a `wl_output` object.

Previously this was not possible.

Depends on https://github.com/Smithay/wayland-rs/pull/164
2018-02-21 14:24:20 +01:00
Drakulix 0ad723a71b Allow `DrmBackend` to act as `drm::control::Device` 2018-02-21 13:31:05 +01:00
Drakulix cbee540013 Reexport ModifiersState to make it publically accessible 2018-02-21 07:48:54 +01:00
Drakulix 2294e79814 Reset drm device into text mode on tty switch 2018-02-20 19:19:22 +01:00
Drakulix e3113caa72 Add new travis feature for logind 2018-02-20 19:19:22 +01:00
Drakulix 525c9b60c4 rustfmt 2018-02-20 19:19:22 +01:00
Drakulix 20e10612b9 Add documentation for logind/auto session 2018-02-20 19:19:22 +01:00
Drakulix 310bc94a20 Fix disappearing cursor after tty switch 2018-02-20 19:19:22 +01:00
Drakulix 5411209bb5 Fix libinput panic on tty switch 2018-02-20 19:19:22 +01:00
Drakulix 495c492e50 Fix trying to become drm master on logind session 2018-02-20 19:19:22 +01:00
Drakulix a768e298f2 Add auto backend 2018-02-20 19:19:22 +01:00
Drakulix b16c62b19f Add logind session 2018-02-20 19:19:22 +01:00
Drakulix 4971278a25 Remove unused type parameter 2018-02-20 19:19:22 +01:00
Victor Berger 036633541a Remove trailing code fence in documentation 2018-02-20 19:08:23 +01:00
Drakulix ef0cfb9f2c Add names to backend seats 2018-02-19 12:49:55 +01:00
Drakulix d3a454ad72 Add winit events handler 2018-02-18 23:42:33 +01:00
Drakulix b53ff34aab Add option to access underlying window 2018-02-18 23:42:02 +01:00
Drakulix 8a30689015 Add getter for current `DrmBackend` mode 2018-02-18 22:04:13 +01:00
Drakulix a0b6e2c916 Don't required EventLoop for wayland object creation 2018-02-15 16:17:12 +01:00
Victor Berger f2751c824f wayland.shell: fix memory corruption in wl_shell
Invalid data was set as user data for wl_shell_surface, causing
access to invalid memory at drop time.

Fixes #60
2018-01-14 13:50:39 +01:00
Drakulix a9c75656a2 Add event_loop to `InputBackend` and `InputHandler` traits 2018-01-12 16:41:33 +01:00
Drakulix 32f48b3cd2 Fix some clippy lints 2018-01-09 14:12:31 +01:00
Drakulix b125ce8005 Fix backend_drm feature 2018-01-07 23:44:21 +01:00
Drakulix 66c011c942 Use new rustfmt-preview 2018-01-07 22:30:38 +01:00
Drakulix 25c1e30fb3 Fix drm doc-test for new egl buffer changes 2018-01-07 22:12:34 +01:00
Drakulix aaa68b1cce Add documentation for the egl buffer features 2018-01-07 22:12:14 +01:00
Drakulix efaadb8882 Fix a bunch of warnings 2018-01-07 20:24:40 +01:00
Drakulix c5f475ebb5 Make unbind_egl_display into Drop implementation for EGLDisplay 2018-01-07 13:02:26 +01:00
Drakulix a527456ba6 Fixup drm backends for egl hardware-acceleration
- Decouple DrmBackend and DrmDevice through Weak references
- Move EGL-WlBuffer related functionality into it's own trait
- Impl new trait by every struct that can theoretically bind the display although it is no rendering target (no EGLGraphicsBackend), e.g. DrmDevice
- Move texture binding into own struct `EGLDisplay` created by `bind_wl_display` that can be passed around freely
- Add device num to DrmDevice for HashMap storage
- Fixup and enable acceleration on drm and udev examples made possible by the previous changes.
2018-01-05 20:04:46 +01:00
Drakulix c63d693a74 Fix seats of version 1 2017-12-28 15:33:18 +01:00
Drakulix 6c6d54064d Get it to work... 2017-12-28 15:30:53 +01:00
Drakulix 726991367d Rework egl image api 2017-12-27 12:20:16 +01:00
Drakulix 5d7e96103d Rework EGL module 2017-12-24 14:29:45 +01:00
Drakulix 5c846d550c Start EGL wl_buffer image retrieval 2017-12-24 14:12:51 +01:00
Drakulix 14fc36bf54 Add binding/unbinding wayland display on EGLContext 2017-12-24 14:12:51 +01:00
Drakulix a9d30374dc Add EGL_WL_bind_wayland_display bindings 2017-12-24 14:12:51 +01:00
Drakulix e1b2c88c83 Use global gl_generator generator 2017-12-24 14:12:51 +01:00
Drakulix bfed76593a Fix backend_session_udev without backend_udev 2017-12-21 18:11:19 +01:00
Drakulix d0046e4c60 Fix rare hot-plugging bug 2017-12-21 16:25:21 +01:00
Drakulix 4207611e6d rustfmt code 2017-12-15 19:22:44 +01:00
Drakulix c9e7624a33 Remove (incomplete) logind support for now 2017-12-07 15:25:21 +01:00
Drakulix 5f59ded3f0 Fix udev example 2017-12-07 15:20:33 +01:00
Drakulix 40ef1236ea Update to released udev/libinput versions 2017-12-06 02:06:00 +01:00
Drakulix 71f107118f Make libinput backend work without the session feature 2017-12-03 22:44:45 +01:00
Drakulix ae5df5039d Fix drm example and tests 2017-12-03 22:33:21 +01:00
Drakulix c5e66176c6 Document DirectSessionNotifier Id type 2017-12-02 17:09:34 +01:00
Drakulix bd83bc5b2d Restore drm state correctly 2017-12-02 17:07:52 +01:00
Drakulix 33286df0d6 Make it impossible to pass invalid `SessionObserver` ids.
- Add an associated type to the `SessionNotifier` trait for the returned Id's instead of using usize.
- Create a new Id type for the `DirectSessionNotifier`'s implementation, wrapping the previously used usize.
- Derive necessary traits of the new wrapper, make internal value inaccessible and Id's not publically constructable.
2017-12-02 14:24:39 +01:00
Drakulix 612436e42d Correctly scan for any encoders 2017-12-02 13:51:08 +01:00
Drakulix 13be5b1634 Add documentation 2017-11-29 22:28:14 +01:00
Drakulix 0350dca972 Automatically add udev backend to the event loop store 2017-11-29 22:28:14 +01:00
Drakulix ef2e0571e7 Swap session signal to usr2, because xwayland may use usr1 2017-11-29 22:28:14 +01:00
Drakulix b4be5a5786 Comment out logind integration for now 2017-11-29 22:28:14 +01:00
Drakulix 24f2d499f3 Add more logging to session 2017-11-29 22:28:14 +01:00
Drakulix 606efebe1b Remove unnecessary mutexes 2017-11-29 22:28:14 +01:00
Drakulix 96bb3570ba Get input working 2017-11-29 22:28:14 +01:00
Drakulix c7682e77de Udev backend 2017-11-29 22:28:13 +01:00
Victor Berger c31d966fd4 Upgrade wayland-server to 0.12 2017-11-03 17:31:51 +01:00
William W Wold 291ba17a5c added scroll events to pointer and winit demo 2017-10-15 16:29:29 +02:00
Demur Rumed 50aa38df72 Fix misc rustfmt nits 2017-10-09 15:17:19 +02:00
Demur Rumed ce844ba9f8 Cargo.toml: include repo, update nix/image 2017-10-09 15:17:19 +02:00
Jonas Platte 4946017c0c Apply a bunch of clippy suggestions 2017-10-07 18:40:59 +02:00
Victor Berger 8ee08ef6f2 wayland: document general behaviour of the client handlers 2017-10-01 22:47:30 +02:00
Victor Berger 249ae98e0f Fix invalid drop in SHM doc test
Allowing the display to be dropped this early destroys the whole wayland
context before we start using it... bad idea.
2017-10-01 22:47:30 +02:00
Victor Berger 9e809f85dd wayland: output global 2017-10-01 22:47:30 +02:00
Drakulix 51886fbf00 Update to stable drm-rs version 2017-10-01 22:25:52 +02:00
Victor Berger 2fbb45273f cargo fmt 2017-09-30 12:05:28 +02:00
Victor Berger 30efcea2ee travis: test various features combination 2017-09-30 12:05:28 +02:00
Victor Berger 15ce7134fc Move wayland utilities to their own module. 2017-09-29 17:24:20 +02:00
Victor Berger 5a0713feb9 Fix winit backend on wayland
We were trying to swap_buffers while the xdg_surface had not been
configured yet, which is a protocol error.
2017-09-29 17:22:19 +02:00
Victor Berger 502a99c5f9 Remove debug printlns 2017-09-29 17:22:19 +02:00
Victor Berger 31f39ed61a seat: increase logger metadata 2017-09-23 18:31:39 +02:00
Victor Berger 532cb6b78e seat: doc & warnings & fmt & cleanup methods 2017-09-22 18:42:52 +02:00
Victor Berger 4b01b55f75 seat.keyboard: fix sym peek with +8 offset 2017-09-22 15:03:23 +02:00
Victor Berger e1ade4e2e9 seat: implementation 2017-09-22 14:54:18 +02:00
Victor Berger bb7d389be6 utils: fmt 2017-09-22 14:53:39 +02:00
Victor Berger 648da00c6a compositor: allow the choice or iteration direction in subsurface trees 2017-09-22 14:53:07 +02:00
Victor Berger 3dd559cdf1 Move Rectangle to utils module. 2017-09-22 10:54:16 +02:00
Victor Berger e6600dfbe9 seat.keyboard: handle repeat-info 2017-09-21 21:40:11 +02:00
Victor Berger 5241b8f79e seat: directory structure 2017-09-21 21:08:30 +02:00
Victor Berger 2850def0f4 Rework keyboard handler 2017-09-21 21:08:30 +02:00
Drakulix 7f45283759 cargo fmt 2017-09-21 20:50:10 +02:00
Drakulix d2617becbf Fix drm doc test and Deref impl 2017-09-21 19:05:59 +02:00
Drakulix f09bdd0a30 cargo fmt 2017-09-20 20:06:58 +02:00
Drakulix 518f7dbdfc Store DrmBackend in EventLoop state 2017-09-20 19:48:58 +02:00
Drakulix 0758ec98ba Fix the drm backend for wayland-rs 0.10 2017-09-20 17:09:37 +02:00
Drakulix 457d6d1c35 Free framebuffers correctly 2017-09-20 15:56:57 +02:00
Drakulix fa6742fb5f The glory of error-chain 2017-09-20 15:56:11 +02:00
Drakulix a04bfcdd11 Add encoder detection to runtime manipulation 2017-09-20 15:54:16 +02:00
Drakulix 174e4b9d0b Fix encoder detection 2017-09-20 15:53:19 +02:00