The "left" , "right", "left-occupied" and
"right-occupied" directions will not wrap.
- *tiled* [up|right|down|left|center]
+ *tiled* [up|right|down|left|center|any]
Whether the client is tiled (snapped) along the the
indicated screen edge.
enum view_edge {
VIEW_EDGE_INVALID = 0,
- VIEW_EDGE_LEFT,
- VIEW_EDGE_RIGHT,
- VIEW_EDGE_UP,
- VIEW_EDGE_DOWN,
- VIEW_EDGE_CENTER,
+ VIEW_EDGE_LEFT = (1 << 0),
+ VIEW_EDGE_RIGHT = (1 << 1),
+ VIEW_EDGE_UP = (1 << 2),
+ VIEW_EDGE_DOWN = (1 << 3),
+ VIEW_EDGE_CENTER = (1 << 4),
+
+ VIEW_EDGE_ALL = (VIEW_EDGE_LEFT | VIEW_EDGE_RIGHT |
+ VIEW_EDGE_UP | VIEW_EDGE_DOWN | VIEW_EDGE_CENTER),
};
enum view_wants_focus {
return false;
}
- if (query->tiled != VIEW_EDGE_INVALID && query->tiled != view->tiled) {
+ if (query->tiled != VIEW_EDGE_INVALID && !(query->tiled & view->tiled)) {
return false;
}
return VIEW_EDGE_DOWN;
} else if (!strcasecmp(direction, "center")) {
return VIEW_EDGE_CENTER;
+ } else if (!strcasecmp(direction, "any")) {
+ return VIEW_EDGE_ALL;
} else {
return VIEW_EDGE_INVALID;
}