Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:redwil:15.4
freerdp1
freerdp_branch-1.0.x_extend-geom-argument-with-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File freerdp_branch-1.0.x_extend-geom-argument-with-position.patch of Package freerdp1
From: Hans-Peter Jansen <hpj@urpla.net> Subject: accommodate position in geometry argument This patch extends the geometry argument (-g) for an optional position, in the same way, as it is usually given a X -geometry option: WidthxHeight+X+Y This is useful to handle complex setups, when a fixed desktop location is needed. Signed-off-by: Hans-Peter Jansen <hpj@urpla.net> Index: b/client/X11/xf_window.c =================================================================== --- a/client/X11/xf_window.c +++ b/client/X11/xf_window.c @@ -323,6 +323,10 @@ xfWindow* xf_CreateDesktopWindow(xfInfo* XMaskEvent(xfi->display, VisibilityChangeMask, &xevent); } while (xevent.type != VisibilityNotify); + + if (xfi->instance->settings->desktop_x_pos || xfi->instance->settings->desktop_y_pos) + XMoveWindow(xfi->display, window->handle, xfi->instance->settings->desktop_x_pos, + xfi->instance->settings->desktop_y_pos); } XStoreName(xfi->display, window->handle, name); Index: b/include/freerdp/settings.h =================================================================== --- a/include/freerdp/settings.h +++ b/include/freerdp/settings.h @@ -292,7 +292,9 @@ struct rdp_settings char* window_title; /* 87 */ uint64 parent_window_xid; /* 88 */ char* wm_class; /* 89 */ - uint32 paddingD[112 - 90]; /* 90 */ + uint32 desktop_x_pos; /* 90 */ + uint32 desktop_y_pos; /* 91 */ + uint32 paddingD[112 - 92]; /* 92 */ /* Internal Parameters */ char* home_path; /* 112 */ Index: b/libfreerdp-core/settings.c =================================================================== --- a/libfreerdp-core/settings.c +++ b/libfreerdp-core/settings.c @@ -40,6 +40,8 @@ rdpSettings* settings_new(void* instance { settings->instance = instance; + settings->desktop_x_pos = 0; + settings->desktop_y_pos = 0; settings->width = 1024; settings->height = 768; settings->workarea = false; Index: b/libfreerdp-utils/args.c =================================================================== --- a/libfreerdp-utils/args.c +++ b/libfreerdp-utils/args.c @@ -91,7 +91,7 @@ int freerdp_parse_args(rdpSettings* sett " -T: window title\n" " -d: domain\n" " -f: fullscreen mode\n" - " -g: set geometry, using format WxH or X%% or 'workarea', default is 1024x768\n" + " -g: set geometry, using format WxH[+X+Y] or X%% or 'workarea', default is 1024x768\n" " -h: print this help\n" " -k: set keyboard layout ID\n" " -K: do not interfere with window manager bindings (don't grab keyboard)\n" @@ -226,6 +226,23 @@ int freerdp_parse_args(rdpSettings* sett if (*p == 'x') { settings->height = (uint16) strtol(p + 1, &p, 10); + if (*p == '+') + { + settings->desktop_x_pos = (uint32) strtol(p + 1, &p, 10); + if (*p == '+') + settings->desktop_y_pos = (uint32) strtol(p + 1, &p, 10); + else + { + printf("missing +y value\n"); + return FREERDP_ARGS_PARSE_FAILURE; + + } + } + else if (*p != '\0') + { + printf("invalid geometry value: %s\n", argv[index]); + return FREERDP_ARGS_PARSE_FAILURE; + } } if (*p == '%') { Index: b/client/X11/xfreerdp.1.xml =================================================================== --- a/client/X11/xfreerdp.1.xml +++ b/client/X11/xfreerdp.1.xml @@ -108,9 +108,12 @@ <itemizedlist> <listitem> <para> - <replaceable class="parameter">W</replaceable>x<replaceable class="parameter">H</replaceable> - + <replaceable class="parameter">W</replaceable>x<replaceable class="parameter">H</replaceable>[+<replaceable + class="parameter">X</replaceable>+<replaceable class="parameter">Y</replaceable>] - in this case the resulting window will be of - <replaceable class="parameter">W</replaceable>x<replaceable class="parameter">H</replaceable> pixels. + <replaceable class="parameter">W</replaceable>x<replaceable class="parameter">H</replaceable> pixels + with optional location at +<replaceable class="parameter">X</replaceable>+<replaceable + class="parameter">Y</replaceable>. </para> </listitem> <listitem>
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor