commit cc3ee24a019b6bdf95ec4ebf19d6cf8d1a4b6ccc
parent bb59bd4f87daa2ed1f919fa125280a731419b677
Author: Dylan Araps <dylan.araps@gmail.com>
Date: Tue, 15 Oct 2019 14:49:12 +0300
sowm: Remove need for _current functions.
Diffstat:
M | config.h | | | 8 | ++++---- |
M | sowm.c | | | 55 | ++++++++++++++++--------------------------------------- |
2 files changed, 20 insertions(+), 43 deletions(-)
diff --git a/config.h b/config.h
@@ -14,10 +14,10 @@ const char* volmute[] = {"amixer", "sset", "Master", "toggle", 0};
const char* colors[] = {"bud", "/home/goldie/Pictures/Wallpapers", 0};
static struct key keys[] = {
- {MOD, XK_q, win_kill, {0}},
- {MOD, XK_c, win_center_current, {0}},
- {MOD, XK_f, win_fs_current, {0}},
- {Mod1Mask, XK_Tab, win_next, {0}},
+ {MOD, XK_q, win_kill, {0}},
+ {MOD, XK_c, win_center, {.i = 0}},
+ {MOD, XK_f, win_fs, {0}},
+ {Mod1Mask, XK_Tab, win_next, {0}},
{MOD, XK_d, run, {.com = menu}},
{MOD, XK_w, run, {.com = colors}},
diff --git a/sowm.c b/sowm.c
@@ -54,11 +54,9 @@ static void notify_enter(XEvent *e);
static void notify_motion(XEvent *e);
static void run(const Arg arg);
static void win_add(Window w);
-static void win_center(Window w);
-static void win_center_current();
+static void win_center(const Arg arg);
static void win_del(Window w);
-static void win_fs(Window w);
-static void win_fs_current();
+static void win_fs();
static void win_kill();
static void win_next();
static void win_to_ws(const Arg arg);
@@ -333,9 +331,12 @@ void win_kill() {
/*
This function simply centers the window passed as
- an argument. Nothing special going on here.
+ an argument. If the argument is '0', use the
+ currently focused window.
*/
-void win_center(Window w) {
+void win_center(const Arg arg) {
+ Window w = arg.i ? arg.i : win_current();
+
XGetWindowAttributes(d, w, &attr);
XMoveWindow(d, w, sw / 2 - attr.width / 2,
@@ -343,7 +344,7 @@ void win_center(Window w) {
}
/*
- This function toggles the fullscreen stte for the
+ This function toggles the fullscreen state for the
window passed as an argument.
The window's data stucture holds an integer which
@@ -354,16 +355,18 @@ void win_center(Window w) {
positioning is stored so it can be restored when
the window is un-fullscreened.
*/
-void win_fs(Window w) {
+void win_fs() {
client *c;
- for WIN if (c->w == w) {
+ win_current();
+
+ for WIN if (c->w == cur) {
if ((c->f = c->f == 0 ? 1 : 0)) {
- XGetWindowAttributes(d, w, &c->a);
- XMoveResizeWindow(d, w, 0, 0, sw, sh);
+ XGetWindowAttributes(d, cur, &c->a);
+ XMoveResizeWindow(d, cur, 0, 0, sw, sh);
} else
- XMoveResizeWindow(d, w, c->a.x, c->a.y, c->a.width, c->a.height);
+ XMoveResizeWindow(d, cur, c->a.x, c->a.y, c->a.width, c->a.height);
}
}
@@ -422,32 +425,6 @@ void win_next() {
}
/*
- This is a wrapper around the real function
- to operate directly on the currently focused
- window.
-
- I'd rather this function not exist but it's
- the simplest method of allowing its use in a
- 'config.h' defined keybinding.
-*/
-void win_fs_current() {
- win_fs(win_current());
-}
-
-/*
- This is a wrapper around the real function
- to operate directly on the currently focused
- window.
-
- I'd rather this function not exist but it's
- the simplest method of allowing its use in a
- 'config.h' defined keybinding.
-*/
-void win_center_current() {
- win_center(win_current());
-}
-
-/*
This function changes the focus to another desktop.
To make this operation invisible the destination
@@ -531,7 +508,7 @@ void map_request(XEvent *e) {
XSelectInput(d, w, PropertyChangeMask|StructureNotifyMask|
EnterWindowMask|FocusChangeMask);
- win_center(w);
+ win_center((Arg){.i = w});
XMapWindow(d, w);
FOC(w);
win_add(w);