Commit Graph

123 Commits

Author SHA1 Message Date
Armin Novak 87f5b768a9 Silenced warning due to missing debug define guard. 2020-03-10 14:04:53 +01:00
Armin Novak 7c243da6e1 Remove symbols exported by accident. 2019-12-02 10:57:31 +01:00
Armin Novak 72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Kenny Levinsen 3c18555693 uwac: Only submit dirty buffers 2019-07-30 09:46:57 +02:00
Kenny Levinsen 2548fd4aae uwac: Make damage tracking more readable 2019-07-30 09:46:57 +02:00
Kenny Levinsen 49674d57f6 uwac: Re-enable damage tracking 2019-07-30 09:46:57 +02:00
Kenny Levinsen 4df57d915d uwac: Do not unconditionally set pendingBuffer on configure
If pendingBuffer is set when it was otherwise NULL, then
UwacWindowSubmitBuffer will forever bail early, waiting for a frame
callback that will never come.
2019-07-30 09:46:57 +02:00
Kenny Levinsen 7dda8362e7 uwac: Acknowledge xdg_surface configure messages
This is necessary for the surface to have its role configured.
2019-07-30 09:46:57 +02: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 1a46ef2a82 Fixed unused variable warnings. 2019-04-05 09:13:24 +02:00
David Fort cfbf22348e
Merge pull request #5251 from akallabeth/wayland_cursor_handling_fix
Moved wayland cursor handling to seat.
2019-04-04 18:05:28 +02:00
Armin Novak cbeabfa47e Fixed xrealloc argument type
Using a void* as arugment instead of char* removes warnings when
allocating something beside a string.
2019-02-21 11:43:59 +01:00
Armin Novak 073c54a368 Use safe iteration for seat removal. 2019-02-19 09:29:17 +01: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 52ef8079ea Added O_TMPFILE support for uwac tempfile generation. 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
Armin Novak b1e6e232ee Fixed buffer submit and callback cleanup.
* Buffer submit now ignores duplicate buffer submit again.
* Frame callback is cleaned up in the callback function now.
* Damage region is currently ignored as there are screen artifacts otherwise.
2019-01-25 10:50:07 +01:00
Armin Novak 823411c2f3 Fixed wayland buffer updates
The wayland buffer size always matches the current window size.
That might be different from the actual remote framebuffer size,
to when copying always use the correct strides to avoid distorted
screen content.
2019-01-25 10:49:03 +01:00
Armin Novak 0fd27e0e38 Fixed wayland clipboard registration, retry if seat is detected before. 2019-01-25 10:49:03 +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 c8e85338b7 Fixed missing return. 2019-01-23 15:56:11 +01:00
Armin Novak ceeccd34e8 Added assert 2019-01-23 15:56:11 +01:00
Armin Novak 68b5d47d9a Removed internal checks. 2019-01-23 15:56:11 +01:00
Armin Novak 9eb897ea6b Fixed a log message. 2019-01-23 15:56:11 +01:00
Armin Novak 9cdddb7722 Fixed some log messages / missing asserts. 2019-01-23 15:56:11 +01:00
Armin Novak 0cba9edc99 Implemented UWAC clipboard handling. 2019-01-23 15:54:05 +01:00
David Fort 4c465e7f16
Merge pull request #5209 from akallabeth/wayland_protocol_update_and_keyboard_inhibit
Wayland protocol update and keyboard inhibit support
2019-01-23 10:02:07 +01:00
Armin Novak 9a0c8a5c53 Removed unused label. 2019-01-22 18:09:53 +01:00
Armin Novak 3cd3490fd1 Fixed initialization of window decorations. 2019-01-22 17:21:09 +01:00
Armin Novak 5c422b7c93 Added KDE server side window decoration interface as fallback. 2019-01-22 17:10:32 +01:00
Armin Novak f2fd785128 Fixed comment. 2019-01-22 16:55:46 +01:00
Armin Novak afd4baf4dd Added wayland server side decorations. 2019-01-22 15:45:15 +01:00
Armin Novak 81f1fb934c Implemented keyboard shortcut inhibit support. 2019-01-22 14:27:12 +01:00
Armin Novak 0ef64f8a84 Updated fullscreen shell to current protocol level. 2019-01-22 13:09:59 +01:00
Armin Novak 7f158b97be Update to xdg-shell stable. 2019-01-22 13:05:46 +01:00
Armin Novak a5cee1751f Resubmit buffer if necessary. 2019-01-18 14:39:14 +01:00
Ondrej Holy 24cdcbccc7 uwac: Do not return destroyed UwacSeat
This is needed to fix the following defects reported by Covscan:
use_after_free: Using freed pointer "seat".
warning: Value stored to 'seat' is never read

This is follow up for https://github.com/FreeRDP/FreeRDP/pull/4970

https://github.com/FreeRDP/FreeRDP/issues/4820
2018-12-13 09:53:59 +01:00
David Fort b9ceb13058 uwac: handle wl_seat with version >= 7
Starting at version 7, the wayland client is supposed to mmap the keymap as MAP_PRIVATE
to prevent accidental or intentional modifications.
2018-12-05 15:21:00 +01:00
David Fort 0b2ea08f74 uwac: change seat API to not reference disposed UwacSeat
This is a false positive returned by covscan, but that doesn't hurt to fix it.
2018-10-25 15:24:29 +02:00
Armin Novak 114abad767 Removed use of strcpy. 2018-08-27 14:34:09 +02:00
Ondrej Holy 24eb53e207 uwac: Fix leak found by covscan
leaked_storage: Variable "data" going out of scope leaks the storage it points to.
copy_paste_error: "opaque_region" in "w->opaque_region" looks like a copy-paste error.
2018-08-22 14:34:02 +02:00
Ondrej Holy 91c398dc94 uwac: Format code by astyle
Run ./scripts/format_code.sh before the following changes.
2018-08-22 14:34:02 +02:00
Kyle Evans a7c0632bf2 Use SetFreeRDPCMakeInstallDir where CMake modules are installed 2018-05-02 10:36:52 -05:00
Kyle Evans aca530bc5b Use shared memory instead of temp files on FreeBSD-compatible OS 2018-05-01 23:50:15 -05:00
Kyle Evans 45d8e2dfb2 Pull in libepoll-shim for the bits that require timerfd/epoll
libepoll-shim is our implementation of this API on top of kevent. It supplies
the same headers and a library, but we don't install it in any of the default
include search paths when it comes in through ports on an as-needed basis.

This set of changes is restricted to FREEBSD-compatible OS, which includes
DragonflyBSD and FreeBSD.
2018-05-01 23:42:25 -05:00
Michael Meyer c01442da2d Fixes scrolling crash in wlfreerdp
An "axis discrete" handler is required since protocol version 5:
https://code.woboq.org/qt5/include/wayland-client-protocol.h.html
Crash output: "listener function for opcode 8 of wl_pointer is NULL"
2017-08-16 18:02:07 +00:00
Armin Novak 8b9e3fa51e Fixed use of reserved keywords for include guards. 2017-07-20 09:35:41 +02:00
Olivier Blin 77d8aaf97b Implement fullscreen for wayland shell surface 2017-07-05 18:47:52 +02:00
Ilya Shipitsin 0d15573010 trivial issue found by cppcheck:
[uwac/libuwac/uwac-display.c:73]: (error) va_list 'args' was opened but not closed by va_end().
2017-01-25 15:48:49 +05:00
Bernhard Miklautz bbb6bf6b43 Include major version number in library names
Currently it is not possible to cleanly install multiple major version
of FreeRDP concurrently as some of the development libraries (.so files)
files can conflict.

This change renames all libraries to include the major version number in
the library name to fix this limitation.

The list of changed libraries:

libwinpr-tools.so -> libwinpr-tools2.so
libwinpr.so -> libwinpr2.so
libfreerdp.so -> libfreerdp2.so
libfreerdp-client.so -> libfreerdp-client2.so
libfreerdp-shadow.so -> libfreerdp-shadow2.so
libfreerdp-server.so ->  libfreerdp-server2.so
libfreerdp-shadow-subsystem.so -> libfreerdp-shadow-subsystem2.so
libuwac.so -> libuwac0.so

As the library names have changed, projects that use FreeRDP will need to
update their dependencies. -
If pkg-config or cmake find modules are used, reconfiguration might be
sufficient.

Fixes #3460
2017-01-16 11:11:58 +01:00
Norbert Federa f71b6b46e8 fix string format specifiers
- fixed invalid, missing or additional arguments
- removed all type casts from arguments
- added missing (void*) typecasts for %p arguments
- use inttypes defines where appropriate
2016-12-16 13:48:43 +01:00
Armin Novak ab733d76e5 Fixed NULL pointer dereferences. 2016-10-19 11:11:35 +02:00
David Fort 237451d167 Implement callbacks for version 5 of wl_pointer
This should prevent crash with compositor that implement this version.
2016-10-17 16:43:23 +02:00
Bernhard Miklautz ddced3f3ca Fix compiler warnings
clang version 3.9.1-svn281634-1~exp1 (branches/release_39)

freerdp-firerds/libfreerdp/core/channels.c:270:9: warning: returning
      'const WtsApiFunctionTable *' (aka 'const struct _WtsApiFunctionTable *') from a function with
      result type 'PWtsApiFunctionTable' (aka 'struct _WtsApiFunctionTable *') discards qualifiers
      [-Wincompatible-pointer-types-discards-qualifiers]
        return &FreeRDP_WtsApiFunctionTable;
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

uwac/libuwac/uwac-display.c:502:12: warning: comparison of
      unsigned enum expression < 0 is always false [-Wtautological-compare]
        if (error < 0 || error >= UWAC_ERROR_LAST)
            ~~~~~ ^ ~
2016-10-06 13:43:15 +02:00
Armin Novak df35c135d1 Fixed color conversion, unified GFX and updated API. 2016-10-06 13:42:58 +02:00
Hendrik Woltersdorf 8ea61fe55a fix errors in xdg-shell-xml for protocol creation 2016-06-14 20:43:35 +02:00
Bernhard Miklautz 9e8c6c99b6 First shot on fixing over linking
If a target is linked against libraries with cmake
(target_link_libraries) and the libraries are not marked as PRIVATE
they are "exported" and in case a other target is linked against this
target it is also linked against *all* (not private) libraries.

Without declaring private libraries PRIVATE a lot of over linking
(linking against unneeded libraries) was done.
2016-03-29 18:14:34 +02:00
Armin Novak 86436bc4e1 Added API export for uwac. 2016-02-27 22:13:59 +01:00
Bernhard Miklautz d5a43ddc6e uwac: generate .pc and cmake find-module 2016-02-25 23:47:32 +01:00
Bernhard Miklautz 167907ef2e uwac: enable library versioning 2016-02-25 23:46:56 +01:00
David FORT 2b18d25731 Added some checks 2016-02-25 00:41:19 +01:00
David FORT 0bf2faedc4 Fix compilation with out-of-tree builds
Generated files weren't in the include path
2016-02-23 14:09:53 +01:00
David FORT 5dcb3dfe8b Fix compilation and detection under debian/ubuntu 2016-02-23 14:09:53 +01:00
David FORT 87d6caa69a Integrate UWAC in to the FreeRDP source tree
So the wayland client can still be built without installing UWAC as a dependency.
2016-02-23 14:09:53 +01:00