diff options
| author | Idan Freiberg <speidy@gmail.com> | 2016-12-18 02:48:16 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-12-18 02:48:16 -0500 |
| commit | 637624995304b59e42655ee1b1c92654181c93a3 (patch) | |
| tree | f1f857467d2d675de22283b8d7f71f3ca5a6ba5e /xrdp/xrdp_mm.c | |
| parent | caf5f5d9f7150198e617c1a22524eff581f771a9 (diff) | |
| parent | 0c6b5111af5ccf7f4b6d3bae4fca39f65401b011 (diff) | |
| download | xrdp-proprietary-637624995304b59e42655ee1b1c92654181c93a3.tar.gz xrdp-proprietary-637624995304b59e42655ee1b1c92654181c93a3.zip | |
Merge pull request #554 from proski/xorg24bpp
Regression fix: session matching uses wrong bpp for Xorg
Diffstat (limited to 'xrdp/xrdp_mm.c')
| -rw-r--r-- | xrdp/xrdp_mm.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c index 07c69327..bb6bc5d8 100644 --- a/xrdp/xrdp_mm.c +++ b/xrdp/xrdp_mm.c @@ -229,14 +229,19 @@ xrdp_mm_send_login(struct xrdp_mm *self) out_uint16_be(s, self->wm->screen->width); out_uint16_be(s, self->wm->screen->height); - if (xserverbpp > 0) + /* select and send X server bpp */ + if (xserverbpp == 0) { - out_uint16_be(s, xserverbpp); - } - else - { - out_uint16_be(s, self->wm->screen->bpp); + if (self->code == 20) + { + xserverbpp = 24; /* xorgxrdp is always at 24 bpp */ + } + else + { + xserverbpp = self->wm->screen->bpp; /* use client's bpp */ + } } + out_uint16_be(s, xserverbpp); /* send domain */ if(self->wm->client_info->domain[0]!='_') |
