diff --git a/client/Wayland/wlfreerdp.c b/client/Wayland/wlfreerdp.c index 4a5830689..d2410f0a6 100644 --- a/client/Wayland/wlfreerdp.c +++ b/client/Wayland/wlfreerdp.c @@ -412,6 +412,11 @@ static BOOL handle_uwac_events(freerdp* instance, UwacDisplay* display) break; + case UWAC_EVENT_CLOSE: + context->closed = TRUE; + + break; + default: break; } @@ -482,6 +487,12 @@ static int wlfreerdp_run(freerdp* instance) break; } + if (context->closed) + { + WLog_Print(context->log, WLOG_INFO, "Closed from Wayland"); + break; + } + if (freerdp_check_event_handles(instance->context) != TRUE) { if (client_auto_reconnect_ex(instance, handle_window_events)) diff --git a/client/Wayland/wlfreerdp.h b/client/Wayland/wlfreerdp.h index d64706690..3b343317c 100644 --- a/client/Wayland/wlfreerdp.h +++ b/client/Wayland/wlfreerdp.h @@ -42,6 +42,7 @@ struct wlf_context UwacSeat* seat; BOOL fullscreen; + BOOL closed; /* Channels */ RdpeiClientContext* rdpei;