diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h index 31d5c9645..2b643ec91 100644 --- a/include/wlr/xwayland.h +++ b/include/wlr/xwayland.h @@ -150,6 +150,7 @@ struct wlr_xwayland_surface { struct wl_signal set_parent; struct wl_signal set_pid; struct wl_signal set_window_type; + struct wl_signal set_hints; struct wl_signal set_override_redirect; struct wl_signal ping_timeout; } events; diff --git a/xwayland/xwm.c b/xwayland/xwm.c index 09428bd3e..6632b5fc8 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -154,6 +154,7 @@ static struct wlr_xwayland_surface *xwayland_surface_create( wl_signal_init(&surface->events.set_parent); wl_signal_init(&surface->events.set_pid); wl_signal_init(&surface->events.set_window_type); + wl_signal_init(&surface->events.set_hints); wl_signal_init(&surface->events.set_override_redirect); wl_signal_init(&surface->events.ping_timeout); @@ -492,6 +493,7 @@ static void read_surface_hints(struct wlr_xwm *xwm, xsurface->hints_urgency = xcb_icccm_wm_hints_get_urgency(&hints); wlr_log(WLR_DEBUG, "WM_HINTS (%d)", reply->value_len); + wlr_signal_emit_safe(&xsurface->events.set_hints, xsurface); } #else static void read_surface_hints(struct wlr_xwm *xwm,