void xf_keyboard_init(xfContext* xfc) { xf_keyboard_clear(xfc); xfc->KeyboardLayout = xfc->instance->settings->KeyboardLayout; xfc->KeyboardLayout = freerdp_keyboard_init(xfc->KeyboardLayout); xfc->instance->settings->KeyboardLayout = xfc->KeyboardLayout; if (xfc->modifierMap) XFreeModifiermap(xfc->modifierMap); xfc->modifierMap = XGetModifierMapping(xfc->display); xf_keyboard_action_script_init(xfc); }
static BOOL xf_event_FocusOut(xfContext* xfc, XEvent* event, BOOL app) { if (event->xfocus.mode == NotifyUngrab) return TRUE; xfc->focused = FALSE; if (event->xfocus.mode == NotifyWhileGrabbed) XUngrabKeyboard(xfc->display, CurrentTime); xf_keyboard_clear(xfc); if (app) xf_rail_send_activate(xfc, event->xany.window, FALSE); return TRUE; }