mirror of https://github.com/neutrinolabs/xrdp
Fix min/max monitor placing issue
when a multi-monitor session has the top-left vertex of the primary monitor at a desktop location other than (0,0), minimising and maximising the session results in the (0,0) co-ordinate of the entire desktop being placed at the top-left of the primary monitor. The implementation seems to be at odds with [MS-RDPEGFX] 2.2.2.14 which suggests the monitorDefArray of the RDPGFX_RESET_GRAPHICS_PDU should be the same as that in the Monitor Layout PDU ([MS-RDPBCGR] 2.2.12.1)
This commit is contained in:
parent
6fa941e208
commit
095f0d0e4c
|
@ -222,6 +222,10 @@ xrdp_egfx_send_wire_to_surface2(struct xrdp_egfx *egfx, int surface_id,
|
||||||
int codec_id, int codec_context_id,
|
int codec_id, int codec_context_id,
|
||||||
int pixel_format,
|
int pixel_format,
|
||||||
void *bitmap_data, int bitmap_data_length);
|
void *bitmap_data, int bitmap_data_length);
|
||||||
|
/*
|
||||||
|
* NB: mi below must be such that the (top,left) co-ordinate of
|
||||||
|
* the primary monitor is (0.0)
|
||||||
|
*/
|
||||||
struct stream *
|
struct stream *
|
||||||
xrdp_egfx_reset_graphics(struct xrdp_egfx_bulk *bulk, int width, int height,
|
xrdp_egfx_reset_graphics(struct xrdp_egfx_bulk *bulk, int width, int height,
|
||||||
int monitor_count, struct monitor_info *mi);
|
int monitor_count, struct monitor_info *mi);
|
||||||
|
|
|
@ -1444,7 +1444,7 @@ xrdp_mm_egfx_caps_advertise(void *user, int caps_count,
|
||||||
error = xrdp_egfx_send_reset_graphics(self->egfx,
|
error = xrdp_egfx_send_reset_graphics(self->egfx,
|
||||||
screen->width, screen->height,
|
screen->width, screen->height,
|
||||||
self->wm->client_info->display_sizes.monitorCount,
|
self->wm->client_info->display_sizes.monitorCount,
|
||||||
self->wm->client_info->display_sizes.minfo_wm);
|
self->wm->client_info->display_sizes.minfo);
|
||||||
LOG(LOG_LEVEL_INFO, "xrdp_mm_egfx_caps_advertise: xrdp_egfx_send_reset_graphics "
|
LOG(LOG_LEVEL_INFO, "xrdp_mm_egfx_caps_advertise: xrdp_egfx_send_reset_graphics "
|
||||||
"error %d monitorCount %d",
|
"error %d monitorCount %d",
|
||||||
error, self->wm->client_info->display_sizes.monitorCount);
|
error, self->wm->client_info->display_sizes.monitorCount);
|
||||||
|
|
Loading…
Reference in New Issue