summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbox/action.c16
-rw-r--r--openbox/action.h2
2 files changed, 18 insertions, 0 deletions
diff --git a/openbox/action.c b/openbox/action.c
index ef8052e7..66475880 100644
--- a/openbox/action.c
+++ b/openbox/action.c
@@ -537,6 +537,11 @@ ActionString actionstrings[] =
setup_client_action
},
{
+ "movetocenter",
+ action_move_to_center,
+ setup_client_action
+ },
+ {
"resizerelativehorz",
action_resize_relative_horz,
setup_client_action
@@ -1152,6 +1157,17 @@ void action_move_relative_vert(union ActionData *data)
client_action_end(data);
}
+void action_move_to_center(union ActionData *data)
+{
+ ObClient *c = data->client.any.c;
+ Rect *area;
+ area = screen_area_monitor(c->desktop, 0);
+ client_action_start(data);
+ client_move(c, area->width / 2 - c->area.width / 2,
+ area->height / 2 - c->area.height / 2);
+ client_action_end(data);
+}
+
void action_resize_relative_horz(union ActionData *data)
{
ObClient *c = data->relative.any.c;
diff --git a/openbox/action.h b/openbox/action.h
index f940f7ea..3b991a67 100644
--- a/openbox/action.h
+++ b/openbox/action.h
@@ -249,6 +249,8 @@ void action_toggle_omnipresent(union ActionData *data);
void action_move_relative_horz(union ActionData *data);
/* MoveResizeRelative */
void action_move_relative_vert(union ActionData *data);
+/* ClientAction */
+void action_move_to_center(union ActionData *data);
/* MoveResizeRelative */
void action_resize_relative_horz(union ActionData *data);
/* MoveResizeRelative */