summaryrefslogtreecommitdiffstats
path: root/client/Wayland
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 01:25:12 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 01:25:12 +0000
commit827a4c3faa27e0c186452585b15094eee1119085 (patch)
treee6a08b0c767863d66f7d4a9de80db5edc7db29be /client/Wayland
parentReleasing progress-linux version 3.3.0+dfsg1-1~progress7.99u1. (diff)
downloadfreerdp3-827a4c3faa27e0c186452585b15094eee1119085.tar.xz
freerdp3-827a4c3faa27e0c186452585b15094eee1119085.zip
Merging upstream version 3.5.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'client/Wayland')
-rw-r--r--client/Wayland/CMakeLists.txt10
-rw-r--r--client/Wayland/wlf_cliprdr.c8
-rw-r--r--client/Wayland/wlfreerdp.c39
3 files changed, 27 insertions, 30 deletions
diff --git a/client/Wayland/CMakeLists.txt b/client/Wayland/CMakeLists.txt
index 7076ff1..41226ba 100644
--- a/client/Wayland/CMakeLists.txt
+++ b/client/Wayland/CMakeLists.txt
@@ -46,17 +46,11 @@ endif()
list (APPEND ${MODULE_PREFIX}_LIBS freerdp-client freerdp uwac)
-add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
+AddTargetWithResourceFile(${MODULE_NAME} TRUE ${FREERDP_VERSION} ${MODULE_PREFIX}_SRCS)
-set(MANPAGE_NAME ${MODULE_NAME})
-if (WITH_BINARY_VERSIONING)
- set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME "${MODULE_NAME}${FREERDP_API_VERSION}")
- set(MANPAGE_NAME ${MODULE_NAME}${FREERDP_API_VERSION})
-endif()
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT client)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Client/Wayland")
-configure_file(wlfreerdp.1.in ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE_NAME}.1)
-install_freerdp_man(${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE_NAME}.1 1)
+generate_and_install_freerdp_man_from_template(${MODULE_NAME} "1" "${FREERDP_API_VERSION}")
diff --git a/client/Wayland/wlf_cliprdr.c b/client/Wayland/wlf_cliprdr.c
index dc189d5..f0c3318 100644
--- a/client/Wayland/wlf_cliprdr.c
+++ b/client/Wayland/wlf_cliprdr.c
@@ -849,6 +849,7 @@ wlf_cliprdr_server_format_data_response(CliprdrClientContext* context,
ClipboardLock(clipboard->system);
EnterCriticalSection(&clipboard->lock);
+ BYTE* cdata = NULL;
UINT32 srcFormatId = 0;
UINT32 dstFormatId = 0;
switch (request->responseFormat)
@@ -895,14 +896,14 @@ wlf_cliprdr_server_format_data_response(CliprdrClientContext* context,
const BOOL sres = ClipboardSetData(clipboard->system, srcFormatId, data, size);
if (sres)
- data = ClipboardGetData(clipboard->system, dstFormatId, &len);
+ cdata = ClipboardGetData(clipboard->system, dstFormatId, &len);
- if (!sres || !data)
+ if (!sres || !cdata)
goto unlock;
if (request->responseFile)
{
- const size_t res = fwrite(data, 1, len, request->responseFile);
+ const size_t res = fwrite(cdata, 1, len, request->responseFile);
if (res == len)
rc = CHANNEL_RC_OK;
}
@@ -910,6 +911,7 @@ wlf_cliprdr_server_format_data_response(CliprdrClientContext* context,
rc = CHANNEL_RC_OK;
unlock:
+ free(cdata);
ClipboardUnlock(clipboard->system);
LeaveCriticalSection(&clipboard->lock);
fail:
diff --git a/client/Wayland/wlfreerdp.c b/client/Wayland/wlfreerdp.c
index 037c999..3007d41 100644
--- a/client/Wayland/wlfreerdp.c
+++ b/client/Wayland/wlfreerdp.c
@@ -224,29 +224,29 @@ static BOOL wl_pre_connect(freerdp* instance)
static BOOL wl_post_connect(freerdp* instance)
{
- rdpGdi* gdi = NULL;
- UwacWindow* window = NULL;
- wlfContext* context = NULL;
- rdpSettings* settings = NULL;
- char* title = "FreeRDP";
- char* app_id = "wlfreerdp";
- UINT32 w = 0;
- UINT32 h = 0;
-
if (!instance || !instance->context)
return FALSE;
- context = (wlfContext*)instance->context;
- settings = instance->context->settings;
+ wlfContext* context = (wlfContext*)instance->context;
+ WINPR_ASSERT(context);
+ rdpSettings* settings = instance->context->settings;
+ WINPR_ASSERT(settings);
+
+ const char* title = "FreeRDP";
const char* wtitle = freerdp_settings_get_string(settings, FreeRDP_WindowTitle);
if (wtitle)
title = wtitle;
+ const char* app_id = "wlfreerdp";
+ const char* wmclass = freerdp_settings_get_string(settings, FreeRDP_WmClass);
+ if (wmclass)
+ app_id = wmclass;
+
if (!gdi_init(instance, PIXEL_FORMAT_BGRA32))
return FALSE;
- gdi = instance->context->gdi;
+ rdpGdi* gdi = instance->context->gdi;
if (!gdi || (gdi->width < 0) || (gdi->height < 0))
return FALSE;
@@ -254,8 +254,8 @@ static BOOL wl_post_connect(freerdp* instance)
if (!wlf_register_pointer(instance->context->graphics))
return FALSE;
- w = (UINT32)gdi->width;
- h = (UINT32)gdi->height;
+ UINT32 w = (UINT32)gdi->width;
+ UINT32 h = (UINT32)gdi->height;
if (freerdp_settings_get_bool(settings, FreeRDP_SmartSizing) && !context->fullscreen)
{
@@ -268,15 +268,16 @@ static BOOL wl_post_connect(freerdp* instance)
h = sh;
}
- context->window = window = UwacCreateWindowShm(context->display, w, h, WL_SHM_FORMAT_XRGB8888);
+ context->window = UwacCreateWindowShm(context->display, w, h, WL_SHM_FORMAT_XRGB8888);
- if (!window)
+ if (!context->window)
return FALSE;
UwacWindowSetFullscreenState(
- window, NULL, freerdp_settings_get_bool(instance->context->settings, FreeRDP_Fullscreen));
- UwacWindowSetTitle(window, title);
- UwacWindowSetAppId(window, app_id);
+ context->window, NULL,
+ freerdp_settings_get_bool(instance->context->settings, FreeRDP_Fullscreen));
+ UwacWindowSetTitle(context->window, title);
+ UwacWindowSetAppId(context->window, app_id);
UwacWindowSetOpaqueRegion(context->window, 0, 0, w, h);
instance->context->update->EndPaint = wl_end_paint;
instance->context->update->DesktopResize = wl_resize_display;