Skip to content

Commit

Permalink
Add node modifiers: horizontal, vertical
Browse files Browse the repository at this point in the history
  • Loading branch information
tobias authored and baskerville committed Mar 16, 2020
1 parent 331902c commit cf2d407
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 3 deletions.
14 changes: 12 additions & 2 deletions doc/bspwm.1
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 03/16/2020
.\" Manual: Bspwm Manual
.\" Source: Bspwm 0.9.9-6-g41b2de0
.\" Source: Bspwm 0.9.9-7-gda1dc1d
.\" Language: English
.\"
.TH "BSPWM" "1" "03/16/2020" "Bspwm 0\&.9\&.9\-6\-g41b2de0" "Bspwm Manual"
.TH "BSPWM" "1" "03/16/2020" "Bspwm 0\&.9\&.9\-7\-gda1dc1d" "Bspwm Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
Expand Down Expand Up @@ -274,6 +274,16 @@ Only consider nodes in the reference desktop\&.
Only consider leaf nodes\&.
.RE
.PP
[!]horizontal
.RS 4
Only consider nodes whose split type is horizontal\&.
.RE
.PP
[!]vertical
.RS 4
Only consider nodes whose split type is vertical\&.
.RE
.PP
[!]window
.RS 4
Only consider nodes that hold a window\&.
Expand Down
6 changes: 6 additions & 0 deletions doc/bspwm.1.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,12 @@ Modifiers
[!]leaf::
Only consider leaf nodes.

[!]horizontal::
Only consider nodes whose split type is horizontal.

[!]vertical::
Only consider nodes whose split type is vertical.

[!]window::
Only consider nodes that hold a window.

Expand Down
2 changes: 2 additions & 0 deletions src/parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,8 @@ bool parse_node_modifiers(char *desc, node_select_t *sel)
GET_MOD(below)
GET_MOD(normal)
GET_MOD(above)
GET_MOD(horizontal)
GET_MOD(vertical)
} else {
return false;
}
Expand Down
18 changes: 17 additions & 1 deletion src/query.c
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,9 @@ node_select_t make_node_select(void)
.ancestor_of = OPTION_NONE,
.below = OPTION_NONE,
.normal = OPTION_NONE,
.above = OPTION_NONE
.above = OPTION_NONE,
.horizontal = OPTION_NONE,
.vertical = OPTION_NONE
};
return sel;
}
Expand Down Expand Up @@ -1140,6 +1142,20 @@ bool node_matches(coordinates_t *loc, coordinates_t *ref, node_select_t *sel)
WFLAG(urgent)
#undef WFLAG

if (sel->horizontal != OPTION_NONE &&
loc->node->split_type != TYPE_HORIZONTAL
? sel->horizontal == OPTION_TRUE
: sel->horizontal == OPTION_FALSE) {
return false;
}

if (sel->vertical != OPTION_NONE &&
loc->node->split_type != TYPE_VERTICAL
? sel->vertical == OPTION_TRUE
: sel->vertical == OPTION_FALSE) {
return false;
}

return true;
}

Expand Down
2 changes: 2 additions & 0 deletions src/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,8 @@ typedef struct {
option_bool_t below;
option_bool_t normal;
option_bool_t above;
option_bool_t horizontal;
option_bool_t vertical;
} node_select_t;

typedef struct {
Expand Down

0 comments on commit cf2d407

Please sign in to comment.