GUACAMOLE-1997: Fix issue on screen resize with freerdp >= 3.8.0.

This commit is contained in:
Corentin SORIANO 2024-11-04 21:32:39 +01:00
parent be51ad165e
commit 11ea330feb
No known key found for this signature in database

View File

@ -99,7 +99,14 @@ BOOL guac_rdp_gdi_end_paint(rdpContext* context) {
guac_display_layer* default_layer = guac_display_default_layer(rdp_client->display);
guac_display_layer_raw_context* current_context = rdp_client->current_context;
GUAC_ASSERT(current_context != NULL);
/* Handle the case where EndPaint was called without a preceding BeginPaint.
* This can occur during screen resize events in "display-update" mode with
* FreeRDP version 3.8.0 or later, where EndPaint is called to ensure the
* update-lock is released and data is flushed before resizing. See the
* associated FreeRDP PR: https://github.com/FreeRDP/FreeRDP/pull/10488 */
if (current_context == NULL)
return TRUE;
/* Ignore paint if GDI output is suppressed */
if (gdi->suppressOutput)