assert(validator);
assert(nearest_edges);
+ if (!output_is_usable(view->output)) {
+ wlr_log(WLR_DEBUG, "ignoring edge search for view on unsable output");
+ return;
+ }
+
struct border view_edges = { 0 };
struct border target_edges = { 0 };
continue;
}
- if (output && v->output != output) {
+ if (output && output != v->output && !view_on_output(v, output)) {
continue;
}
- /*
- * If view and v are on different outputs, make sure part of
- * view is actually in the usable area of the output of v.
- */
- if (view->output != v->output) {
- struct wlr_box usable =
- output_usable_area_in_layout_coords(v->output);
-
- struct wlr_box ol;
- if (!wlr_box_intersection(&ol, view_geom, &usable)) {
- continue;
- }
+ /* Both view and v must share a common output */
+ if (view->output != v->output && !(view->outputs & v->outputs)) {
+ continue;
}
struct border border = ssd_get_margin(v->ssd);
assert(validator);
assert(nearest_edges);
+ if (!output_is_usable(view->output)) {
+ wlr_log(WLR_DEBUG,
+ "ignoring edge search for view on unsable output");
+ return;
+ }
+
struct border view_edges = { 0 };
struct border target_edges = { 0 };