diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 01:25:12 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 01:25:12 +0000 |
commit | 827a4c3faa27e0c186452585b15094eee1119085 (patch) | |
tree | e6a08b0c767863d66f7d4a9de80db5edc7db29be /client/Wayland | |
parent | Releasing progress-linux version 3.3.0+dfsg1-1~progress7.99u1. (diff) | |
download | freerdp3-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.txt | 10 | ||||
-rw-r--r-- | client/Wayland/wlf_cliprdr.c | 8 | ||||
-rw-r--r-- | client/Wayland/wlfreerdp.c | 39 |
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; |