Commit Graph

59 Commits

Author SHA1 Message Date
akallabeth
ba47e1936f
[uwac] add strerror_r detection and use 2024-09-30 15:41:52 +02:00
akallabeth
861f699d92
[uwac] fix uwac seat functions
change arguments to match prototypes
2024-09-11 20:49:03 +02:00
Armin Novak
fe4cb6de65
[warnings] fix float/double warnings 2024-09-02 16:20:20 +02:00
akallabeth
1d33095500
[warnings] fix cert-err33-c
Fix unused return values, cast to void if on purpose
2024-08-29 10:19:27 +02:00
akallabeth
0d09ae9ad4 [coverity] 1543074 Dereference before null check 2024-04-12 12:41:42 +02:00
akallabeth
d7ebec5a65 [tidy] move loop variable declaration to loop 2024-02-22 12:31:50 +01:00
akallabeth
0ba995655d [clang-tidy] cppcoreguidelines-init-variables 2024-02-15 11:49:16 +01:00
akallabeth
207def5c56 [clang-tidy] readability-isolate-declaration 2024-02-15 11:49:16 +01:00
Mariusz Bialonczyk
26017c71bd [uwac] input: release pressed keys when loosing window focus
The commit is fixing the problem when eg. a user is pressing some
modifier key to switch from active FreeRDP window and when get back to
that window, it "virtually" has that modifier key pressed, thus leading
to pressing eg. `Win+r` instead of just `r`.
2024-01-11 16:00:40 +01:00
Mariusz Bialonczyk
36e79b449d [uwac] input: fix keyboard "sticky" keys when entering window
The commit is fixing the following problem:
When the freerdp window gets keyboard focus and is notified,
it wrongly process keys which are *held*, not a freshly pressed.

The comment in the code explains it more.
2024-01-11 16:00:40 +01:00
Mariusz Bialonczyk
d56af70dc1 [uwac] input: fix a crash when the pointer_focus is not set yet when starting 2024-01-05 14:17:38 +01:00
Mariusz Bialonczyk
8d661cc85a [uwac] input: fix cursor scaling
Fixes #9687
2024-01-05 14:17:38 +01:00
Mariusz Bialonczyk
f73ecf6000 [uwac] input: pointer_handle_motion: take a scale into account 2024-01-05 14:17:38 +01:00
akallabeth
1b2335873a [uwac] add new callbacks, assert arguments 2023-08-25 12:56:36 +02:00
Armin Novak
de0c42273e [uwac] add key repeat state to UwacKeyEvent 2022-12-13 14:37:05 +01:00
Jonas Ådahl
5b09cd57a7 uwac/input: Don't pass hotspot as offset when attaching cursor buffer
Passing a non-zero offset to cursor buffer and then calling
wl_pointer.set_cursor doesn't make much sense, as any offset will
immediately be reset. The protocol specifies the cursor set by
wl_pointer.set_cursor to be

> The parameters hotspot_x and hotspot_y define the position of
> the pointer surface relative to the pointer location. Its
> top-left corner is always at (x, y) - (hotspot_x, hotspot_y),
> where (x, y) are the coordinates of the pointer location, in
> surface-local coordinates.

This leaves no room available for any previously set offsets to be kept
in response to wl_pointer.set_cursor.
2022-11-16 19:17:08 +01:00
Jonas Ådahl
b2cf6f5c2c uwac/input: Set the right serial when setting cursor
The serial in wl_pointer.set_cursor must exactly match the one from
wl_pointer.enter, it should not use whatever serial for any input class
is the newest.
2022-11-16 19:17:08 +01:00
Benoît Gschwind
1cf69f04e6 uwac: fix wl_buffer_destroy of wl_cursor buffer
Following the wayland-cursor documentation [1] the buffer created by
wl_cursor_image_get_buffer should not be destroyed. The new code avoid to
destroy it by avoiding to connect the release callback to this buffer.

[1] https://gitlab.freedesktop.org/wayland/wayland/-/blob/main/cursor/wayland-cursor.c#L147-L154
2022-10-19 17:18:07 +02:00
akallabeth
f1e6c6b131 Fix #7570: Limit mouse events to positive values
Wayland API might report mouse events slightly outside the window,
clamp the values to that negative coordinates are skipped.
2022-01-24 11:57:22 +01:00
Marek Vasut
c1f44721c5 uwac: Fix connection between mouse-less devices
In case the seat has no default_cursor, which happens on client device with
no mouse attached (e.g. tablets), freerdp would fail to connect because it
won't be able to set cursor image. Check for this condition and skip setting
the cursor image.

Signed-off-by: Marek Vasut <marex@denx.de>
2021-11-29 15:47:23 +01:00
Armin Novak
673fb46836 Fixed uninitialized warnings 2021-09-10 08:16:25 +02:00
Armin Novak
610396e197 Fixed compilation warnings
Try to get the number of warnings down
2021-08-02 10:28:06 +02:00
Armin Novak
cbb39709b9 uwac: Fixed warnings, added assertions 2021-06-18 11:32:16 +02:00
Max Roncace
e2920d7259 Wayland client: Disable shortcut inhibition on rctrl press 2021-04-08 09:23:58 +02:00
akallabeth
b6b6a81187 Added pointer source events 2021-03-03 11:49:24 +01:00
akallabeth
9ea7f88753 Added pointer frame events 2021-03-03 11:49:24 +01:00
akallabeth
25ab8c8b9c Added wayland discrete axis events for mouse wheel
the discrete axis event gives changes in steps just like the
xfreerdp version uses. This way scrolling can be implemented
consistent with the behaviour of xfreerdp
2021-02-04 21:21:57 +01:00
0140454
522c0cb3ad libuwac: Fix code format 2021-02-04 21:21:27 +01:00
0140454
aaefe18f98 libuwac: Add UwacKeyboardModifiersEvent 2021-02-04 21:21:27 +01:00
0140454
712c5fee97 Fix key repeat in Wayland 2021-01-27 01:22:52 +08:00
Sascha Wessel
ff618f53f7 libuwac/input: Fix memory leak
`create_pointer_buffer()` allocates memory with `mmap` and never frees it.

Adding a corresponding `munmap` fixes this issue.
2020-04-29 22:31:02 +02:00
akallabeth
56deba7562 Enforce coding style. 2020-04-09 13:49:10 +02:00
Julian Albrecht
7824f0cee9 Moves variable declaration to beginning of scope 2020-04-09 13:49:10 +02:00
Julian Christian Albrecht
3029e3b2cf Check return value if already a listener is registered 2020-04-09 13:49:10 +02:00
Julian Albrecht
7ecce5acbe Adds touch support to wlfreerdp 2020-03-27 14:16:18 +01:00
Armin Novak
72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Armin Novak
d91d1edd0c Fixed dead store warnings 2019-04-05 09:14:35 +02:00
Armin Novak
de69dd3942 Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak
b0ab577474 Moved wayland cursor handling to seat. 2019-02-13 09:02:15 +01:00
Armin Novak
0d389d09a3 Fix 5243: Allocate buffers zero in uwac. 2019-02-11 11:54:19 +01:00
Armin Novak
ce2f2012ae Destroying released cursor buffers. 2019-02-08 15:22:06 +01:00
Armin Novak
db3bcffd03 Don't destroy wayland buffer attached to a surface. 2019-02-08 13:42:45 +01:00
Armin Novak
b3ffdbbde1 Fixed missing initializer. 2019-02-08 12:08:30 +01:00
Armin Novak
32d539b706 Removed debug messages. 2019-01-29 13:34:27 +01:00
Armin Novak
f64db12a2e Fixed uninitialized value. 2019-01-29 11:07:44 +01:00
Armin Novak
2418c43cac Fixed pointer image update. 2019-01-29 09:34:30 +01:00
Armin Novak
34adfd5714 Added UWAC_EVENT_OUTPUT_GEOMETRY event 2019-01-29 09:34:30 +01:00
Armin Novak
23fa6b9182 Added mouse cursor callback stubs. 2019-01-29 09:34:30 +01:00
David Fort
713e9cd5a7 uwac: fix initialization of data_device_manager
Depending on how global objects are announced (seats then ddm), we could fail to initialize
the data device manager of seats.
2019-01-24 10:34:16 +01:00
Armin Novak
0cba9edc99 Implemented UWAC clipboard handling. 2019-01-23 15:54:05 +01:00