From 0a581a7f3d5cbe72ba7aafee4d7ba0928d2d62d8 Mon Sep 17 00:00:00 2001 From: Jay Sorg Date: Sun, 14 Feb 2021 21:20:30 -0800 Subject: [PATCH] fix for gfx and auto login --- xrdp/xrdp_mm.c | 5 +++++ xrdp/xrdp_types.h | 2 +- xrdp/xrdp_wm.c | 10 ++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c index be5d24a260..6df133d53a 100644 --- a/xrdp/xrdp_mm.c +++ b/xrdp/xrdp_mm.c @@ -1235,6 +1235,11 @@ xrdp_mm_egfx_caps_advertise(void* user, int caps_count, } xrdp_region_add_rect(self->wm->screen_dirty_region, &xr_rect); self->encoder = xrdp_encoder_create(self); + if (self->wm->gfx_delay_autologin) + { + self->wm->gfx_delay_autologin = 0; + xrdp_wm_set_login_mode(self->wm, 2); + } } else { diff --git a/xrdp/xrdp_types.h b/xrdp/xrdp_types.h index 2a923f50ff..d8fb0dc1ec 100644 --- a/xrdp/xrdp_types.h +++ b/xrdp/xrdp_types.h @@ -390,7 +390,7 @@ struct xrdp_wm struct xrdp_region *screen_dirty_region; int last_screen_draw_time; - + int gfx_delay_autologin; }; /* rdp process */ diff --git a/xrdp/xrdp_wm.c b/xrdp/xrdp_wm.c index eaa59396ca..6db25f4f9c 100644 --- a/xrdp/xrdp_wm.c +++ b/xrdp/xrdp_wm.c @@ -773,8 +773,14 @@ xrdp_wm_init(struct xrdp_wm *self) list_add_item(self->mm->login_names, (long)g_strdup(q)); list_add_item(self->mm->login_values, (long)g_strdup(r)); } - - xrdp_wm_set_login_mode(self, 2); + if (self->session->client_info->gfx == 0) + { + xrdp_wm_set_login_mode(self, 2); + } + else + { + self->gfx_delay_autologin = 1; + } } else {