From: DreamMaoMao <2523610504@qq.com> Date: Thu, 5 Jun 2025 11:33:12 +0000 (+0800) Subject: view.c: add new NO_OMNIPRESENT criteria X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=5cf4aa83e2345e4a9972e9e295a42e0e2b2df12e;p=proto%2Flabwc.git view.c: add new NO_OMNIPRESENT criteria --- 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; }