From 3b6fe26301b3d4f9db5d508b4b3a175b2eab36d0 Mon Sep 17 00:00:00 2001 From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Thu, 12 Mar 2026 13:24:55 +0100 Subject: [PATCH] view: add always-on-top signal --- include/view.h | 1 + src/view.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/include/view.h b/include/view.h index 6c0fdf58..dcc0d058 100644 --- a/include/view.h +++ b/include/view.h @@ -280,6 +280,7 @@ struct view { struct wl_signal minimized; struct wl_signal fullscreened; struct wl_signal activated; /* bool *activated */ + struct wl_signal always_on_top; /* * This is emitted when app_id, or icon set via xdg_toplevel_icon * is updated. This is listened by scaled_icon_buffer. diff --git a/src/view.c b/src/view.c index 7eb381de..57baa22d 100644 --- a/src/view.c +++ b/src/view.c @@ -1549,6 +1549,8 @@ view_set_layer(struct view *view, enum view_layer layer) view->layer = layer; wlr_scene_node_reparent(&view->scene_tree->node, view->workspace->view_trees[layer]); + + wl_signal_emit_mutable(&view->events.always_on_top, NULL); } void @@ -2476,6 +2478,7 @@ view_init(struct view *view) wl_signal_init(&view->events.minimized); wl_signal_init(&view->events.fullscreened); wl_signal_init(&view->events.activated); + wl_signal_init(&view->events.always_on_top); wl_signal_init(&view->events.set_icon); wl_signal_init(&view->events.destroy); @@ -2555,6 +2558,7 @@ view_destroy(struct view *view) assert(wl_list_empty(&view->events.minimized.listener_list)); assert(wl_list_empty(&view->events.fullscreened.listener_list)); assert(wl_list_empty(&view->events.activated.listener_list)); + assert(wl_list_empty(&view->events.always_on_top.listener_list)); assert(wl_list_empty(&view->events.set_icon.listener_list)); assert(wl_list_empty(&view->events.destroy.listener_list));