From 4174553124e96c71a9f9d3dbb316d30b11350192 Mon Sep 17 00:00:00 2001 From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Sat, 14 Oct 2023 23:42:56 +0200 Subject: [PATCH] desktop.c: prevent switching workspaces for always-on-bottom windows Fixes: #1170 Reported-by: @stefonarch Reported-by: @tsujan --- include/view.h | 1 + src/desktop.c | 4 ++-- src/view.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/include/view.h b/include/view.h index d9a213ac..09d516e5 100644 --- a/include/view.h +++ b/include/view.h @@ -323,6 +323,7 @@ void view_toggle_maximize(struct view *view); void view_toggle_decorations(struct view *view); bool view_is_always_on_top(struct view *view); +bool view_is_always_on_bottom(struct view *view); void view_toggle_always_on_top(struct view *view); void view_toggle_always_on_bottom(struct view *view); diff --git a/src/desktop.c b/src/desktop.c index f6c94dd8..3672e270 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -67,9 +67,9 @@ desktop_focus_view(struct view *view, bool raise) /* * Switch workspace if necessary to make the view visible - * (unnecessary for "always on top" views). + * (unnecessary for "always on {top,bottom}" views). */ - if (!view_is_always_on_top(view)) { + if (!view_is_always_on_top(view) && !view_is_always_on_bottom(view)) { workspaces_switch_to(view->workspace, /*update_focus*/ false); } diff --git a/src/view.c b/src/view.c index 3e27bc77..1f88327f 100644 --- a/src/view.c +++ b/src/view.c @@ -872,7 +872,7 @@ view_toggle_always_on_top(struct view *view) } } -static bool +bool view_is_always_on_bottom(struct view *view) { assert(view);