XEmbed-patch by Arend van Beelen jr. <arend@auton.nl>
git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@635 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
0fa8eb2b0d
commit
697f58a48a
@ -97,6 +97,10 @@ Enable numlock syncronization between the Xserver and the remote RDP
|
||||
session. This is useful with applications that looks at the numlock
|
||||
state, but might cause problems with some Xservers like Xvnc.
|
||||
.TP
|
||||
.BR "-X <windowid>"
|
||||
Embed rdesktop-window in another window. The windowid is expected to
|
||||
be decimal.
|
||||
.TP
|
||||
.BR "-a <bpp>"
|
||||
Sets the colour depth for the connection (8, 15, 16 or 24).
|
||||
More than 8 bpp are only supported when connecting to Windows XP
|
||||
|
@ -70,6 +70,7 @@ BOOL g_console_session = False;
|
||||
BOOL g_numlock_sync = False;
|
||||
extern BOOL g_owncolmap;
|
||||
extern BOOL g_ownbackstore;
|
||||
extern uint32 g_embed_wnd;
|
||||
|
||||
#ifdef WITH_RDPSND
|
||||
BOOL g_rdpsnd = False;
|
||||
@ -118,6 +119,7 @@ usage(char *program)
|
||||
fprintf(stderr, " -S: caption button size (single application mode)\n");
|
||||
fprintf(stderr, " -T: window title\n");
|
||||
fprintf(stderr, " -N: enable numlock syncronization\n");
|
||||
fprintf(stderr, " -X: embed into another window with a given id.\n");
|
||||
fprintf(stderr, " -a: connection colour depth\n");
|
||||
fprintf(stderr, " -r: enable specified device redirection (this flag can be repeated)\n");
|
||||
fprintf(stderr,
|
||||
@ -245,6 +247,7 @@ main(int argc, char *argv[])
|
||||
prompt_password = False;
|
||||
domain[0] = password[0] = shell[0] = directory[0] = 0;
|
||||
strcpy(keymapname, "en-us");
|
||||
g_embed_wnd = 0;
|
||||
|
||||
g_num_devices = 0;
|
||||
|
||||
@ -254,7 +257,7 @@ main(int argc, char *argv[])
|
||||
#define VNCOPT
|
||||
#endif
|
||||
|
||||
while ((c = getopt(argc, argv, VNCOPT "u:d:s:c:p:n:k:g:fbBeEmCDKS:T:Na:r:045h?")) != -1)
|
||||
while ((c = getopt(argc, argv, VNCOPT "u:d:s:c:p:n:k:g:fbBeEmCDKS:T:NX:a:r:045h?")) != -1)
|
||||
{
|
||||
switch (c)
|
||||
{
|
||||
@ -401,6 +404,10 @@ main(int argc, char *argv[])
|
||||
g_numlock_sync = True;
|
||||
break;
|
||||
|
||||
case 'X':
|
||||
g_embed_wnd = strtol(optarg, NULL, 10);
|
||||
break;
|
||||
|
||||
case 'a':
|
||||
g_server_bpp = strtol(optarg, NULL, 10);
|
||||
if (g_server_bpp != 8 && g_server_bpp != 16 && g_server_bpp != 15
|
||||
|
6
xwin.c
6
xwin.c
@ -43,6 +43,7 @@ Time g_last_gesturetime;
|
||||
static int g_x_socket;
|
||||
static Screen *g_screen;
|
||||
Window g_wnd;
|
||||
uint32 g_embed_wnd;
|
||||
BOOL g_enable_compose = False;
|
||||
static GC g_gc = NULL;
|
||||
static Visual *g_visual;
|
||||
@ -925,6 +926,11 @@ ui_create_window(void)
|
||||
XFree(sizehints);
|
||||
}
|
||||
|
||||
if ( g_embed_wnd )
|
||||
{
|
||||
XReparentWindow(g_display, g_wnd, (Window)g_embed_wnd, 0, 0);
|
||||
}
|
||||
|
||||
input_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
|
||||
VisibilityChangeMask | FocusChangeMask;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user