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
|
session. This is useful with applications that looks at the numlock
|
||||||
state, but might cause problems with some Xservers like Xvnc.
|
state, but might cause problems with some Xservers like Xvnc.
|
||||||
.TP
|
.TP
|
||||||
|
.BR "-X <windowid>"
|
||||||
|
Embed rdesktop-window in another window. The windowid is expected to
|
||||||
|
be decimal.
|
||||||
|
.TP
|
||||||
.BR "-a <bpp>"
|
.BR "-a <bpp>"
|
||||||
Sets the colour depth for the connection (8, 15, 16 or 24).
|
Sets the colour depth for the connection (8, 15, 16 or 24).
|
||||||
More than 8 bpp are only supported when connecting to Windows XP
|
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;
|
BOOL g_numlock_sync = False;
|
||||||
extern BOOL g_owncolmap;
|
extern BOOL g_owncolmap;
|
||||||
extern BOOL g_ownbackstore;
|
extern BOOL g_ownbackstore;
|
||||||
|
extern uint32 g_embed_wnd;
|
||||||
|
|
||||||
#ifdef WITH_RDPSND
|
#ifdef WITH_RDPSND
|
||||||
BOOL g_rdpsnd = False;
|
BOOL g_rdpsnd = False;
|
||||||
@ -118,6 +119,7 @@ usage(char *program)
|
|||||||
fprintf(stderr, " -S: caption button size (single application mode)\n");
|
fprintf(stderr, " -S: caption button size (single application mode)\n");
|
||||||
fprintf(stderr, " -T: window title\n");
|
fprintf(stderr, " -T: window title\n");
|
||||||
fprintf(stderr, " -N: enable numlock syncronization\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, " -a: connection colour depth\n");
|
||||||
fprintf(stderr, " -r: enable specified device redirection (this flag can be repeated)\n");
|
fprintf(stderr, " -r: enable specified device redirection (this flag can be repeated)\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@ -245,6 +247,7 @@ main(int argc, char *argv[])
|
|||||||
prompt_password = False;
|
prompt_password = False;
|
||||||
domain[0] = password[0] = shell[0] = directory[0] = 0;
|
domain[0] = password[0] = shell[0] = directory[0] = 0;
|
||||||
strcpy(keymapname, "en-us");
|
strcpy(keymapname, "en-us");
|
||||||
|
g_embed_wnd = 0;
|
||||||
|
|
||||||
g_num_devices = 0;
|
g_num_devices = 0;
|
||||||
|
|
||||||
@ -254,7 +257,7 @@ main(int argc, char *argv[])
|
|||||||
#define VNCOPT
|
#define VNCOPT
|
||||||
#endif
|
#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)
|
switch (c)
|
||||||
{
|
{
|
||||||
@ -401,6 +404,10 @@ main(int argc, char *argv[])
|
|||||||
g_numlock_sync = True;
|
g_numlock_sync = True;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'X':
|
||||||
|
g_embed_wnd = strtol(optarg, NULL, 10);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'a':
|
case 'a':
|
||||||
g_server_bpp = strtol(optarg, NULL, 10);
|
g_server_bpp = strtol(optarg, NULL, 10);
|
||||||
if (g_server_bpp != 8 && g_server_bpp != 16 && g_server_bpp != 15
|
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 int g_x_socket;
|
||||||
static Screen *g_screen;
|
static Screen *g_screen;
|
||||||
Window g_wnd;
|
Window g_wnd;
|
||||||
|
uint32 g_embed_wnd;
|
||||||
BOOL g_enable_compose = False;
|
BOOL g_enable_compose = False;
|
||||||
static GC g_gc = NULL;
|
static GC g_gc = NULL;
|
||||||
static Visual *g_visual;
|
static Visual *g_visual;
|
||||||
@ -925,6 +926,11 @@ ui_create_window(void)
|
|||||||
XFree(sizehints);
|
XFree(sizehints);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( g_embed_wnd )
|
||||||
|
{
|
||||||
|
XReparentWindow(g_display, g_wnd, (Window)g_embed_wnd, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
input_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
|
input_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
|
||||||
VisibilityChangeMask | FocusChangeMask;
|
VisibilityChangeMask | FocusChangeMask;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user