diff options
author | Jay Sorg <jay.sorg@gmail.com> | 2019-11-12 23:43:14 +0300 |
---|---|---|
committer | Jay Sorg <jay.sorg@gmail.com> | 2019-11-12 23:43:14 +0300 |
commit | ce191e3335a9413406e00f75a86e040976026ae2 (patch) | |
tree | 75efcc4fd915e87160b03395515e9fc1d1d050e7 | |
parent | 3fc76695793ffdf5020016a4f14e0a70b0531daf (diff) |
add --railhmw
-rw-r--r-- | client/X11/xf_window.c | 5 | ||||
-rw-r--r-- | client/X11/xfreerdp.c | 1 | ||||
-rw-r--r-- | client/X11/xfreerdp.h | 1 | ||||
-rw-r--r-- | include/freerdp/settings.h | 3 | ||||
-rw-r--r-- | libfreerdp-utils/args.c | 4 |
5 files changed, 12 insertions, 2 deletions
diff --git a/client/X11/xf_window.c b/client/X11/xf_window.c index 22835be..6bd221c 100644 --- a/client/X11/xf_window.c +++ b/client/X11/xf_window.c @@ -318,7 +318,10 @@ xfWindow* xf_CreateDesktopWindow(xfInfo* xfi, char* name, int width, int height, PropModeReplace, (uint8*) xf_icon_prop, sizeof(xf_icon_prop) / sizeof(long)); XSelectInput(xfi->display, window->handle, input_mask); - XMapWindow(xfi->display, window->handle); + if ((xfi->rail_flags & 1) == 0) /* is window visible */ + { + XMapWindow(xfi->display, window->handle); + } } XStoreName(xfi->display, window->handle, name); diff --git a/client/X11/xfreerdp.c b/client/X11/xfreerdp.c index df28cb6..1d9e77c 100644 --- a/client/X11/xfreerdp.c +++ b/client/X11/xfreerdp.c @@ -597,6 +597,7 @@ tbool xf_pre_connect(freerdp* instance) xfi->fullscreen_toggle = true; xfi->sw_gdi = settings->sw_gdi; xfi->parent_window = (Window) settings->parent_window_xid; + xfi->rail_flags = settings->rail_flags; xf_detect_monitors(xfi, settings); diff --git a/client/X11/xfreerdp.h b/client/X11/xfreerdp.h index 9a706c2..9b897b9 100644 --- a/client/X11/xfreerdp.h +++ b/client/X11/xfreerdp.h @@ -178,6 +178,7 @@ struct xf_info Atom WM_PROTOCOLS; Atom WM_DELETE_WINDOW; + uint32 rail_flags; struct shm_info_t* shm_info; int skip_bs; int frameId; diff --git a/include/freerdp/settings.h b/include/freerdp/settings.h index a73491b..3cb39fa 100644 --- a/include/freerdp/settings.h +++ b/include/freerdp/settings.h @@ -387,7 +387,8 @@ struct rdp_settings uint32 num_icon_caches; /* 313 */ uint32 num_icon_cache_entries; /* 314 */ boolean rail_langbar_supported; /* 315 */ - uint32 paddingO[320 - 316]; /* 316 */ + uint32 rail_flags; /* 316 */ + uint32 paddingO[320 - 317]; /* 317 */ /* Pointer */ boolean large_pointer; /* 320 */ diff --git a/libfreerdp-utils/args.c b/libfreerdp-utils/args.c index b92ed62..ab95dd1 100644 --- a/libfreerdp-utils/args.c +++ b/libfreerdp-utils/args.c @@ -525,6 +525,10 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv, settings->workarea = true; settings->performance_flags = PERF_DISABLE_WALLPAPER | PERF_DISABLE_FULLWINDOWDRAG; } + else if (strcmp("--railhmw", argv[index]) == 0) + { + settings->rail_flags |= 1; + } else if (strcmp("-x", argv[index]) == 0) { index++; |