struct wl_listener new_popup;
};
+/* All criteria is applied in AND logic */
enum lab_view_criteria {
+ /* No filter -> all focusable views */
LAB_VIEW_CRITERIA_NONE = 0,
- LAB_VIEW_CRITERIA_CURRENT_WORKSPACE = 1 << 0,
- LAB_VIEW_CRITERIA_FULLSCREEN = 1 << 1,
- LAB_VIEW_CRITERIA_NO_ALWAYS_ON_TOP = 1 << 2,
- LAB_VIEW_CRITERIA_NO_SKIP_WINDOW_SWITCHER = 1 << 3,
+
+ /*
+ * Includes always-on-top views, e.g.
+ * what is visible on the current workspace
+ */
+ LAB_VIEW_CRITERIA_CURRENT_WORKSPACE = 1 << 0,
+
+ /* Positive criteria */
+ LAB_VIEW_CRITERIA_FULLSCREEN = 1 << 1,
+ LAB_VIEW_CRITERIA_ALWAYS_ON_TOP = 1 << 2,
+
+ /* Negative criteria */
+ LAB_VIEW_CRITERIA_NO_ALWAYS_ON_TOP = 1 << 6,
+ LAB_VIEW_CRITERIA_NO_SKIP_WINDOW_SWITCHER = 1 << 7,
};
/**
return false;
}
}
+ if (criteria & LAB_VIEW_CRITERIA_ALWAYS_ON_TOP) {
+ if (!view_is_always_on_top(view)) {
+ return false;
+ }
+ }
if (criteria & LAB_VIEW_CRITERIA_NO_ALWAYS_ON_TOP) {
if (view_is_always_on_top(view)) {
return false;