Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/neutrinolabs/NeutrinoRDP.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2019-11-12 23:43:14 +0300
committerJay Sorg <jay.sorg@gmail.com>2019-11-12 23:43:14 +0300
commitce191e3335a9413406e00f75a86e040976026ae2 (patch)
tree75efcc4fd915e87160b03395515e9fc1d1d050e7
parent3fc76695793ffdf5020016a4f14e0a70b0531daf (diff)
add --railhmw
-rw-r--r--client/X11/xf_window.c5
-rw-r--r--client/X11/xfreerdp.c1
-rw-r--r--client/X11/xfreerdp.h1
-rw-r--r--include/freerdp/settings.h3
-rw-r--r--libfreerdp-utils/args.c4
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++;