|
|
@ -363,9 +363,13 @@ static void xwm_focus_window(struct wlr_xwm *xwm,
|
|
|
|
// We handle cases where focus_surface == xsurface because we
|
|
|
|
// We handle cases where focus_surface == xsurface because we
|
|
|
|
// want to be able to deny FocusIn events.
|
|
|
|
// want to be able to deny FocusIn events.
|
|
|
|
if (!xsurface) {
|
|
|
|
if (!xsurface) {
|
|
|
|
|
|
|
|
// XCB_POINTER_ROOT is described in xcb documentation but isn't
|
|
|
|
|
|
|
|
// actually defined in the headers. It's distinct from XCB_NONE
|
|
|
|
|
|
|
|
// (which disables keyboard input entirely and causes issues
|
|
|
|
|
|
|
|
// with keyboard grabs for e.g. popups).
|
|
|
|
xcb_set_input_focus_checked(xwm->xcb_conn,
|
|
|
|
xcb_set_input_focus_checked(xwm->xcb_conn,
|
|
|
|
XCB_INPUT_FOCUS_POINTER_ROOT,
|
|
|
|
XCB_INPUT_FOCUS_POINTER_ROOT,
|
|
|
|
XCB_NONE, XCB_CURRENT_TIME);
|
|
|
|
1L /*XCB_POINTER_ROOT*/, XCB_CURRENT_TIME);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|