This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2gokdrive. commit dc303b2596a114c6721984a792d9594f6f33824f Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Fri Jul 29 13:16:23 2022 -0500 set initial geometry form the -geometry command line option. --- debian/changelog | 1 + x2gokdriveinit.c | 5 +++-- x2gokdriveremote.c | 22 ++++++++++++++++++++++ x2gokdriveremote.h | 3 +++ 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index d2eacde..7d5feb2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -32,6 +32,7 @@ x2gokdrive (0.0.0.1-0x2go1) UNRELEASED; urgency=medium - improve icon handling in rootless mode. - don't show invisible windows. - sending KEYRELEASE immediately after KEYPRESS to avoid the "key sticking". + - set initial geometry form the -geometry command line option. [ Mihai Moldovan ] * Initial release: diff --git a/x2gokdriveinit.c b/x2gokdriveinit.c index 7a4bbfa..e66c4ac 100644 --- a/x2gokdriveinit.c +++ b/x2gokdriveinit.c @@ -239,6 +239,7 @@ ddxProcessArgument(int argc, char **argv, int i) if ((i + 1) < argc) { /* compat with nxagent */ + remote_set_init_geometry(argv[i+1]); return 2; } @@ -348,14 +349,14 @@ OsVendorInit(void) // } + remote_init(); #if XORG_VERSION_CURRENT < 11999901 KdOsInit(&EphyrOsFuncs); #endif if (serverGeneration == 1) { if (!KdCardInfoLast()) { - processScreenArg("800x600", NULL); + processScreenArg(remote_get_init_geometry(), NULL); } - remote_init(); } } diff --git a/x2gokdriveremote.c b/x2gokdriveremote.c index f9bd628..7726648 100644 --- a/x2gokdriveremote.c +++ b/x2gokdriveremote.c @@ -3284,6 +3284,7 @@ int remote_init(void) { + EPHYR_DBG("Setting initial arguments"); char* displayVar = NULL; /*init it in OsInit*/ @@ -3296,6 +3297,11 @@ remote_init(void) remoteVars.jpegQuality=JPG_QUALITY; remoteVars.compression=DEFAULT_COMPRESSION; remoteVars.selstruct.selectionMode = CLIP_BOTH; + if(!strlen(remote_get_init_geometry())) + { + EPHYR_DBG("Setting initial geometry to \"800x600\""); + remote_set_init_geometry("800x600"); + } pthread_mutex_init(&remoteVars.mainimg_mutex, NULL); pthread_mutex_init(&remoteVars.sendqueue_mutex,NULL); @@ -4525,6 +4531,22 @@ uint32_t calculate_crc(uint32_t width, uint32_t height, int32_t dx, int32_t dy) return crc; } +const char* remote_get_init_geometry() +{ + return remoteVars.initGeometry; +} + +void remote_set_init_geometry(char* geometry) +{ + if(strlen(geometry)>128) + { + EPHYR_DBG("INIT Geometry %s is too long, we'll ignore it", geometry); + return; + } + strncpy(remoteVars.initGeometry,geometry,strlen(geometry)); +} + + void remote_set_display_name(const char* name) { int max_len=256; diff --git a/x2gokdriveremote.h b/x2gokdriveremote.h index dccea67..c10e86c 100644 --- a/x2gokdriveremote.h +++ b/x2gokdriveremote.h @@ -393,6 +393,7 @@ struct _remoteHostVars char acceptAddr[256]; char cookie[33]; char displayName[256]; + char initGeometry[128]; int listenPort; int jpegQuality; uint32_t framenum; @@ -555,6 +556,8 @@ remote_paint_rect(KdScreenInfo *screen, void request_selection_from_client(enum SelectionType selection); void rebuild_caches(void); void remote_set_rootless(void); +void remote_set_init_geometry(char* geometry); +const char* remote_get_init_geometry(); void remote_check_windowstree(WindowPtr root); void remote_check_window(WindowPtr win); struct remoteWindow* remote_find_window(WindowPtr win); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gokdrive.git