Resolution switching without reconnecting.
- Based on https://github.com/jsorg71/xrdp/tree/dynamic_monitor - Tested with xorgxrdp - Tested with vnc - Only works with single monitor. - Update documentation to clarify the difference between MSTSC and Microsoft Remote Desktop. - Does not include compatibility with /gfx at this time, which is still in testing. - Updates to include ms-rdpedisp.h header for the 2.2.2 specification of the protocol. - Adds new dynamic_monitor_layout struct that shares the number of monitors with xrdp_client_info.h - Does not allow for BPP changes because the RDP protocol doesn't support it. - Option to disable feature as NeutrinoRDP doesn't support it (It was based on FreeRDP 1.0.1 which didn't yet have this feature.) - Add CLIENT_MONITOR_DATA_MAXIMUM_MONITORS constant and reference spec definition. Depends on https://github.com/neutrinolabs/xorgxrdp/pull/183
This commit is contained in:
@@ -492,6 +492,10 @@ lxrdp_set_param(struct mod *mod, const char *name, const char *value)
|
||||
{
|
||||
settings->nla_security = g_text2bool(value);
|
||||
}
|
||||
else if (g_strcmp(name, "enable_dynamic_resizing") == 0)
|
||||
{
|
||||
settings->desktop_resize = g_text2bool(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG(LOG_LEVEL_WARNING, "lxrdp_set_param: unknown name [%s] value [%s]", name, value);
|
||||
@@ -599,6 +603,27 @@ lxrdp_suppress_output(struct mod *mod, int suppress,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
static int
|
||||
lxrdp_server_version_message(struct mod *mod)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
static int
|
||||
lxrdp_server_monitor_resize(struct mod *mod, int width, int height)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
static int
|
||||
lxrdp_server_monitor_full_invalidate(struct mod *mod, int width, int height)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
static void
|
||||
lfreerdp_begin_paint(rdpContext *context)
|
||||
@@ -2074,6 +2099,9 @@ mod_init(void)
|
||||
mod->mod_check_wait_objs = lxrdp_check_wait_objs;
|
||||
mod->mod_frame_ack = lxrdp_frame_ack;
|
||||
mod->mod_suppress_output = lxrdp_suppress_output;
|
||||
mod->mod_server_version_message = lxrdp_server_version_message;
|
||||
mod->mod_server_monitor_resize = lxrdp_server_monitor_resize;
|
||||
mod->mod_server_monitor_full_invalidate = lxrdp_server_monitor_full_invalidate;
|
||||
|
||||
mod->inst = freerdp_new();
|
||||
mod->inst->PreConnect = lfreerdp_pre_connect;
|
||||
|
||||
Reference in New Issue
Block a user