summaryrefslogtreecommitdiff
path: root/openbox/action.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-05-22 02:22:43 +0000
committerDana Jansens <danakj@orodu.net>2003-05-22 02:22:43 +0000
commit4d814a383b099c48ad9b61cb94d25ef16b1a698a (patch)
tree14ee14be18619aef1786e8b4c56d6decc355f18b /openbox/action.c
parentd6cb5adbeaf0b7fbb55aca942ae5b8f62f77b4ea (diff)
add actions for changing client layers to abov/below/normal
Diffstat (limited to 'openbox/action.c')
-rw-r--r--openbox/action.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/openbox/action.c b/openbox/action.c
index ad12c331..b514916f 100644
--- a/openbox/action.c
+++ b/openbox/action.c
@@ -170,6 +170,21 @@ void setup_action_movetoedge_west(Action *a)
a->data.diraction.direction = Direction_West;
}
+void setup_action_top_layer(Action *a)
+{
+ a->data.layer.layer = 1;
+}
+
+void setup_action_normal_layer(Action *a)
+{
+ a->data.layer.layer = 0;
+}
+
+void setup_action_bottom_layer(Action *a)
+{
+ a->data.layer.layer = -1;
+}
+
ActionString actionstrings[] =
{
{
@@ -483,6 +498,31 @@ ActionString actionstrings[] =
NULL
},
{
+ "sendtotoplayer",
+ action_send_to_layer,
+ setup_action_top_layer
+ },
+ {
+ "togglealwaysontop",
+ action_toggle_layer,
+ setup_action_top_layer
+ },
+ {
+ "sendtonormallayer",
+ action_send_to_layer,
+ setup_action_normal_layer
+ },
+ {
+ "sendtobottomlayer",
+ action_send_to_layer,
+ setup_action_bottom_layer
+ },
+ {
+ "togglealwaysonbottom",
+ action_toggle_layer,
+ setup_action_bottom_layer
+ },
+ {
"nextwindowlinear",
action_cycle_windows,
setup_action_cycle_windows_linear_next
@@ -1087,3 +1127,21 @@ void action_movetoedge(union ActionData *data)
x, y, c->area.width, c->area.height, TRUE, TRUE);
}
+
+void action_send_to_layer(union ActionData *data)
+{
+ if (data->layer.c)
+ client_set_layer(data->layer.c, data->layer.layer);
+}
+
+void action_toggle_layer(union ActionData *data)
+{
+ Client *c = data->layer.c;
+
+ if (c) {
+ if (data->layer.layer < 0)
+ client_set_layer(c, c->below ? 0 : -1);
+ else if (data->layer.layer > 0)
+ client_set_layer(c, c->above ? 0 : 1);
+ }
+}