Commit Graph

48 Commits

Author SHA1 Message Date
i509VCB 5210b39c35 anvil: deduplicate some input handler logic 2021-11-22 15:27:42 +01:00
i509VCB 3283010d2c Add Forward/Back mouse buttons 2021-10-27 12:23:12 -05:00
i509VCB 77c970e197 winit: rework around `WinitEvent` vs `InputEvent<Special = WinitEvent>` 2021-10-27 14:16:19 +02:00
i509VCB 2e68cfda5a X11 backend 2021-10-17 13:46:15 -05:00
Victor Brekenfeld 55eb73cb9e wayland/seat: add return value to `KeyboardHandle::input` 2021-09-19 17:10:08 +02:00
Victor Brekenfeld 90dd28c910 wayland/seat: Add `KeysymHandle` to allow for keycode conversions.
Currently keycodes are always converted using xkbcommons
`State::key_get_one_sym` function. This may be not what the compositor
wants, e.g. if it represents keybindings with explicit modifiers.
Applying Shift in this case changes the sym, making it necessary for
the compositor to *undo* this transformation, which is hard or even
impossible and very unnecessary, when we have all the necessary
information in smithay.

Therefor this commit replaces the `Keysym` argument of the filter
closure with a `KeysymHandle`, which allows for different variants of
keysyms to be received. Modified (as previously), unmodified or even
as a raw keycode.
2021-09-17 17:12:26 +02:00
Poly 115403633b anvil: Implement wlr_layer_shell 2021-07-31 13:44:04 +02:00
Victor Berger 3387957065 CI: deny warnings in anvil 2021-07-25 10:14:08 +02:00
Christian Meissl d09de13bfc use size for transformed functions 2021-07-13 22:38:32 +02:00
Christian Meissl 72e4d910fe implement fractional HiDPI scaling
expose output from output map and return a reference
in find

change scale with keyboard shortcut

scale input coordinates and render location
according to output_scale

scale buffers during rendering

adapt window locations on output scale
change to that the location will appear
to be stable

scale udev pointer location on output scale
change to make the pointer location appear stable

Use a UserDataMap to store the udev output id

Short names for udev outputs for easier output
scale configuration
2021-07-13 22:38:32 +02:00
Victor Berger 54ea0d3a74 Introduce Logical/Physical Point/Rectangle 2021-07-13 13:58:06 +02:00
Poly 07743faad2 Apply suggestions from code review & Rebase 2021-07-05 23:57:28 +02:00
Poly c557adc6a6 anvil: Add tablet support 2021-07-05 22:36:32 +02:00
Poly 1c9e3fe903 input: Add tablet events 2021-07-05 22:36:32 +02:00
Christian Meissl df208fa6c8 clamp cursor with current output height
move fullscreen output geometry calculation to
a helper function

rename with_outputs to with_client_outputs and
take client instead of generic resource
2021-06-30 23:56:01 +02:00
Christian Meissl 0d88a392fa add an output_map which handles...
the positioning of outputs, tracks
the surfaces on the outputs and
sends enter/leave for the surfaces

Additionally the output_map will
handle re-location of windows if
a output mode is changed, an output is
added or removed.

The shell has been updated to use the
primary output for the initial placement.
The fullscreen/maximize requests will now
handle the shell part correctly. For real
fullscreen output the rendering has to be
changed.

The output name is considered unique
and an output can be retrieved from
the map by location, output or name.
This can be used as the base for HiDPI
handling.
2021-06-30 18:24:51 +02:00
Victor Berger 053bc98faa Fix all CI warnings 2021-06-29 18:03:44 +02:00
Christian Meissl 4cb03a1d0d track suppressed keys and...
...forward non suppressed keys on release
fixes #242
2021-06-20 12:07:47 +02:00
Victor Berger 9ad0edd2a3 Fix several clippy lints 2021-06-10 22:01:10 +02:00
Victor Berger c630bd9086 cargo fmt 2021-06-10 22:01:10 +02:00
Victor Brekenfeld 969cdda85c renderer: Split Renderer trait into Import sub-traits 2021-06-08 21:47:05 +02:00
Victor Berger 327321612d anvil: remove several Rc and RefCell 2021-06-03 11:45:22 +02:00
Victor Berger 4bf6bfa08d anvil: reorganize platform-specific values 2021-06-03 11:45:22 +02:00
Victor Berger aaa6e625e9 Update to calloop 0.8, DrmDevice as an EventSource 2021-06-03 11:45:22 +02:00
Victor Brekenfeld 36bf5618ed clippy fixes 2021-05-15 16:12:12 +02:00
Victor Berger 36e11284c2 New clippy fixes 2020-11-02 10:24:55 +01:00
Victor Berger 49dda88c63 backend.input: keep sub-pixel precision in events
libinput provides sub-pixel precision for pointer motion & touch events.
Keep this precision by switching all coordinates values from input
events to f64 (rather than i32 or u32). Otherwise, values are rounded
and part of the movment is lost.

Potentially fixes #224
2020-07-13 17:56:20 +02:00
Victor Brekenfeld 9c3c3d939e cargo fmt & lint 2020-06-28 00:25:15 +02:00
Victor Brekenfeld bf011e8071 anvil: Introduce BufferTextures 2020-06-28 00:23:24 +02:00
Victor Brekenfeld 7e75a68e57 anvil: allow swapping monitors via shortcut 2020-06-28 00:23:24 +02:00
Victor Brekenfeld 33fb393383 anvil: clamp input to current output instead of full hd 2020-06-28 00:23:22 +02:00
Victor Berger b708f88da6 anvil: Fuse InputHandler into AnvilState 2020-05-12 08:46:34 +02:00
Victor Berger 8f543eb597 backend.input: rework libinput as a calloop source 2020-05-12 08:46:34 +02:00
Victor Berger 5552c81a32 anvil: Introduce InputInitData to simplify function prototypes 2020-05-02 13:27:35 +02:00
nycex 0140de89fb fix some clippy warnings (#147)
This commit removes some clippy warnings (to advance #45) by doing the following:
- replace usage of `mem::uninitialized()` with `MaybeUninit`
- replace usage of `nix::libc::{uint64_t, int32_t}` with `{u64, i32}`
- replace functions inside of `Option::ok_or` with `Option::ok_or_else`
- replace functions inside of `Result::unwrap_or` with `Result::unwrap_or_else`
- replace occurrences of pass-by-reference with pass-by-value when
  appropriate
- replace unused variables in pattern-matching with wildcards
- replace `match` expressions that have only one case with `if let`
  expressions
- replace UpperCamelCase names of consts with SCREAMING_SNAKE_CASE
- remove `clone()` on types that implement Copy
- remove redundant imports
- remove `fn main()` from doctests
- remove let binding for variables that are returned afterwards
2020-01-01 11:43:16 +01:00
Victor Brekenfeld cc5d55f535 rustfmt fixes 2018-12-17 16:58:49 +01:00
Victor Brekenfeld e5f8c351c7 Check for rust_2018_idioms 2018-12-16 19:31:38 +01:00
Victor Brekenfeld 71bd64a6bf Fix source code for 2018 edition 2018-12-16 19:31:38 +01:00
Victor Brekenfeld a3acd48cc3 fmt: rust 1.31 2018-12-08 18:31:08 +01:00
Victor Brekenfeld f8a5e8bfde anvil: allow for non-egl builds 2018-12-03 23:29:30 +01:00
Victor Brekenfeld a745eace15 anvil: fix tty swap 2018-12-02 22:01:45 +01:00
Victor Berger 8b66680097 anvil: use smithay's global SerialCounter 2018-10-08 13:55:21 +02:00
Victor Berger 139d0f3992 wayland.seat: Pointer grabbing logic 2018-10-08 13:55:21 +02:00
Jonas Platte 850ff6983a anvil: Use nested imports 2018-10-07 22:39:18 +02:00
Victor Berger 454f874284 cargo fmt 2018-09-25 00:32:09 +02:00
Colin Benner 73ff30b0ee anvil: address some clippy warnings 2018-06-27 14:04:40 +02:00
Victor Berger 011d067ce5 anvil: add a raw DRM backend 2018-05-08 19:39:38 +02:00
Victor Berger 6ee6fd6890 anvil: factor the input backend code 2018-05-08 12:47:09 +02:00