summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/defs.h3
-rw-r--r--src/parser.c3
-rw-r--r--src/sxwm.c17
3 files changed, 20 insertions, 3 deletions
diff --git a/src/defs.h b/src/defs.h
index 5476434..5796214 100644
--- a/src/defs.h
+++ b/src/defs.h
@@ -119,6 +119,7 @@ typedef struct {
Bool enabled;
} Scratchpad;
+extern void centre_window();
extern void close_focused(void);
extern void dec_gaps(void);
extern void focus_next(void);
@@ -139,4 +140,4 @@ extern void resize_stack_add(void);
extern void resize_stack_sub(void);
extern void toggle_floating(void);
extern void toggle_floating_global(void);
-extern void toggle_fullscreen(void); \ No newline at end of file
+extern void toggle_fullscreen(void);
diff --git a/src/parser.c b/src/parser.c
index eb0b1a8..79cf29b 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -37,6 +37,7 @@ static const struct {
{"toggle_floating", toggle_floating},
{"global_floating", toggle_floating_global},
{"fullscreen", toggle_fullscreen},
+ {"centre_window", centre_window},
{NULL, NULL}};
static void remap_and_dedupe_binds(Config *cfg)
@@ -691,4 +692,4 @@ const char **build_argv(const char *cmd)
free(tmp);
return argv;
#endif
-} \ No newline at end of file
+}
diff --git a/src/sxwm.c b/src/sxwm.c
index 5e86c75..8aa7bd8 100644
--- a/src/sxwm.c
+++ b/src/sxwm.c
@@ -38,6 +38,7 @@
#include "parser.h"
Client *add_client(Window w, int ws);
+/* void centre_window(); */
void change_workspace(int ws);
int clean_mask(int mask);
/* void close_focused(void); */
@@ -253,6 +254,20 @@ Client *add_client(Window w, int ws)
return c;
}
+void centre_window()
+{
+ if (!focused || !focused->mapped || !focused->floating) {
+ return;
+ }
+
+ int x = mons[focused->mon].x + (mons[focused->mon].w - focused->w) / 2;
+ int y = mons[focused->mon].y + (mons[focused->mon].h - focused->h) / 2;
+
+ focused->x = x;
+ focused->y = y;
+ XMoveWindow(dpy, focused->win, x, y);
+}
+
void change_workspace(int ws)
{
if (ws >= NUM_WORKSPACES || ws == current_ws) {
@@ -2657,4 +2672,4 @@ int main(int ac, char **av)
printf("sxwm: starting...\n");
run();
return 0;
-} \ No newline at end of file
+}