input_mask =
KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
VisibilityChangeMask | FocusChangeMask | StructureNotifyMask |
- PointerMotionMask | ExposureMask | EnterWindowMask | LeaveWindowMask |
- PropertyChangeMask;
+ PointerMotionMask | ExposureMask | PropertyChangeMask;
+
+ if (xfi->grab_keyboard)
+ input_mask |= EnterWindowMask | LeaveWindowMask;
XSelectInput(xfi->display, window->handle, input_mask);
XMapWindow(xfi->display, window->handle);
xfi->decoration = settings->decorations;
xfi->remote_app = settings->remote_app;
xfi->fullscreen = settings->fullscreen;
+ xfi->grab_keyboard = settings->grab_keyboard;
xfi->fullscreen_toggle = xfi->fullscreen;
xfi->sw_gdi = settings->sw_gdi;
int scanline_pad;
boolean big_endian;
boolean fullscreen;
+ boolean grab_keyboard;
boolean unobscured;
boolean decoration;
freerdp* instance;
boolean sw_gdi;
boolean workarea;
boolean fullscreen;
+ boolean grab_keyboard;
boolean decorations;
uint32 rdp_version;
uint16 color_depth;
settings->height = 768;
settings->workarea = False;
settings->fullscreen = False;
+ settings->grab_keyboard = True;
settings->decorations = True;
settings->rdp_version = 7;
settings->color_depth = 16;
" -g: set geometry, using format WxH 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\n"
" -m: don't send mouse motion events\n"
" -n: hostname\n"
" -o: console audio\n"
}
sscanf(argv[index], "%X", &(settings->kbd_layout));
}
+ else if (strcmp("-K", argv[index]) == 0)
+ {
+ settings->grab_keyboard = False;
+ }
else if (strcmp("-n", argv[index]) == 0)
{
index++;