static BOOL xf_event_UnmapNotify(xfContext* xfc, XEvent* event, BOOL app) { rdpWindow* window; rdpUpdate* update = xfc->instance->update; rdpRail* rail = ((rdpContext*) xfc)->rail; xf_keyboard_release_all_keypress(xfc); if (!app) { update->SuppressOutput((rdpContext*) xfc, 0, NULL); } else { window = window_list_get_by_extra_id(rail->list, (void*) event->xany.window); if (window != NULL) { xfWindow* xfw = (xfWindow*) window->extra; xfw->is_mapped = FALSE; } } return TRUE; }
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_release_all_keypress(xfc); xf_keyboard_clear(xfc); if (app) xf_rail_send_activate(xfc, event->xany.window, FALSE); return TRUE; }
static BOOL xf_event_UnmapNotify(xfContext* xfc, XEvent* event, BOOL app) { xfAppWindow* appWindow; xf_keyboard_release_all_keypress(xfc); if (!app) gdi_send_suppress_output(xfc->context.gdi, TRUE); else { appWindow = xf_AppWindowFromX11Window(xfc, event->xany.window); if (appWindow) { appWindow->is_mapped = FALSE; } } return TRUE; }
static BOOL xf_event_UnmapNotify(xfContext* xfc, XEvent* event, BOOL app) { xfAppWindow* appWindow; rdpUpdate* update = xfc->context.update; xf_keyboard_release_all_keypress(xfc); if (!app) { update->SuppressOutput((rdpContext*) xfc, 0, NULL); } else { appWindow = xf_AppWindowFromX11Window(xfc, event->xany.window); if (appWindow) { appWindow->is_mapped = FALSE; } } return TRUE; }