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:
Wolf480pl 2018-10-12 23:53:21 +02:00
parent 4897267bd6
commit 3512db3ded

View file

@ -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);
} }