xwayland/xwm: make hints->input default to true
An X11 client can leave the hints->input WM hint unspecified, by not setting the XCB_ICCCM_WM_HINT_INPUT flag in hints->flags. In that case, we should assume a sane default. Make the hint default to true, so that clients which do not specify the hint, like mupdf, still get keyboard focus. This should fix swaywm/sway#2231
This commit is contained in:
parent
4897267bd6
commit
3512db3ded
|
@ -522,6 +522,12 @@ static void read_surface_hints(struct wlr_xwm *xwm,
|
||||||
memcpy(xsurface->hints, &hints, sizeof(struct wlr_xwayland_surface_hints));
|
memcpy(xsurface->hints, &hints, sizeof(struct wlr_xwayland_surface_hints));
|
||||||
xsurface->hints_urgency = xcb_icccm_wm_hints_get_urgency(&hints);
|
xsurface->hints_urgency = xcb_icccm_wm_hints_get_urgency(&hints);
|
||||||
|
|
||||||
|
if (!(xsurface->hints->flags & XCB_ICCCM_WM_HINT_INPUT)) {
|
||||||
|
// The client didn't specify whether it wants input.
|
||||||
|
// Assume it does.
|
||||||
|
xsurface->hints->input = true;
|
||||||
|
}
|
||||||
|
|
||||||
wlr_log(WLR_DEBUG, "WM_HINTS (%d)", reply->value_len);
|
wlr_log(WLR_DEBUG, "WM_HINTS (%d)", reply->value_len);
|
||||||
wlr_signal_emit_safe(&xsurface->events.set_hints, xsurface);
|
wlr_signal_emit_safe(&xsurface->events.set_hints, xsurface);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue