void xf_kbd_init(xfContext* xfc) { xf_kbd_clear(xfc); xfc->keyboard_layout_id = xfc->instance->settings->KeyboardLayout; xfc->keyboard_layout_id = freerdp_keyboard_init(xfc->keyboard_layout_id); xfc->instance->settings->KeyboardLayout = xfc->keyboard_layout_id; xfc->modifier_map = XGetModifierMapping(xfc->display); }
static BOOL xf_event_FocusOut(xfInfo* xfi, XEvent* event, BOOL app) { if (event->xfocus.mode == NotifyUngrab) return TRUE; xfi->focused = FALSE; if (event->xfocus.mode == NotifyWhileGrabbed) XUngrabKeyboard(xfi->display, CurrentTime); xf_kbd_clear(xfi); if (app) xf_rail_send_activate(xfi, event->xany.window, FALSE); return TRUE; }