@@ 346,6 346,17 @@ client_set_tiled(Client *c, uint32_t edges)
wlr_xdg_toplevel_set_tiled(c->surface.xdg->toplevel, edges);
}
+static inline void
+client_set_suspended(Client *c, int suspended)
+{
+#ifdef XWAYLAND
+ if (client_is_x11(c))
+ return;
+#endif
+
+ wlr_xdg_toplevel_set_suspended(c->surface.xdg->toplevel, suspended);
+}
+
static inline struct wlr_surface *
client_surface_at(Client *c, double cx, double cy, double *sx, double *sy)
{
@@ 457,9 457,12 @@ void
arrange(Monitor *m)
{
Client *c;
- wl_list_for_each(c, &clients, link)
- if (c->mon == m)
+ wl_list_for_each(c, &clients, link) {
+ if (c->mon == m) {
wlr_scene_node_set_enabled(&c->scene->node, VISIBLEON(c, m));
+ client_set_suspended(c, !VISIBLEON(c, m));
+ }
+ }
wlr_scene_node_set_enabled(&m->fullscreen_bg->node,
(c = focustop(m)) && c->isfullscreen);
@@ 2257,7 2260,7 @@ setup(void)
layer_shell = wlr_layer_shell_v1_create(dpy, 3);
LISTEN_STATIC(&layer_shell->events.new_surface, createlayersurface);
- xdg_shell = wlr_xdg_shell_create(dpy, 5);
+ xdg_shell = wlr_xdg_shell_create(dpy, 6);
LISTEN_STATIC(&xdg_shell->events.new_surface, createnotify);
session_lock_mgr = wlr_session_lock_manager_v1_create(dpy);