From 5cf4aa83e2345e4a9972e9e295a42e0e2b2df12e Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Thu, 5 Jun 2025 19:33:12 +0800 Subject: [PATCH] view.c: add new NO_OMNIPRESENT criteria --- include/view.h | 1 + src/view.c | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/include/view.h b/include/view.h index e26cff32..5b93e98e 100644 --- a/include/view.h +++ b/include/view.h @@ -340,6 +340,7 @@ enum lab_view_criteria { /* Negative criteria */ LAB_VIEW_CRITERIA_NO_ALWAYS_ON_TOP = 1 << 6, LAB_VIEW_CRITERIA_NO_SKIP_WINDOW_SWITCHER = 1 << 7, + LAB_VIEW_CRITERIA_NO_OMNIPRESENT = 1 << 8, }; /** diff --git a/src/view.c b/src/view.c index a9797fef..15278a29 100644 --- a/src/view.c +++ b/src/view.c @@ -263,6 +263,15 @@ matches_criteria(struct view *view, enum lab_view_criteria criteria) return false; } } + if (criteria & LAB_VIEW_CRITERIA_NO_OMNIPRESENT) { + /* + * TODO: Once always-on-top views use a per-workspace + * sub-tree we can remove the check from this condition. + */ + if (view->visible_on_all_workspaces || view_is_always_on_top(view)) { + return false; + } + } return true; } -- 2.52.0