Simplify multimonitor_center_fs()

This commit is contained in:
Leon Plickat 2019-11-25 13:52:55 +01:00
parent 4dd50e6f4f
commit c6ff8d06a0

View File

@ -10,7 +10,7 @@ index 8573837..72e9542 100644
PREFIX?= /usr PREFIX?= /usr
BINDIR?= $(PREFIX)/bin BINDIR?= $(PREFIX)/bin
diff --git a/sowm.c b/sowm.c diff --git a/sowm.c b/sowm.c
index 0cc1293..665b0f8 100644 index 0cc1293..fa911b0 100644
--- a/sowm.c --- a/sowm.c
+++ b/sowm.c +++ b/sowm.c
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
@ -38,29 +38,28 @@ index 0cc1293..665b0f8 100644
} }
void key_press(XEvent *e) { void key_press(XEvent *e) {
@@ -172,12 +174,36 @@ void win_kill() { @@ -172,12 +174,35 @@ void win_kill() {
if (cur) XKillClient(d, cur->w); if (cur) XKillClient(d, cur->w);
} }
+int multimonitor_center_fs (int fs) { +int multimonitor_center_fs (int fs) {
+ if (XineramaIsActive(d)) { + if (!XineramaIsActive(d))
+ XineramaScreenInfo *screen_info = XineramaQueryScreens(d, &monitors); + return 1;
+ for (int i = 0; i < monitors; i++) { + XineramaScreenInfo *screen_info = XineramaQueryScreens(d, &monitors);
+ if ((cur->wx >= screen_info[i].x_org && cur->wx < screen_info[i].x_org + screen_info[i].width) + for (int i = 0; i < monitors; i++) {
+ && (cur->wy >= screen_info[i].y_org && cur->wy < screen_info[i].y_org + screen_info[i].height)) { + if ((cur->wx >= screen_info[i].x_org && cur->wx < screen_info[i].x_org + screen_info[i].width)
+ if (fs) + && (cur->wy >= screen_info[i].y_org && cur->wy < screen_info[i].y_org + screen_info[i].height)) {
+ XMoveResizeWindow(d, cur->w, + if (fs)
+ screen_info[i].x_org, screen_info[i].y_org, + XMoveResizeWindow(d, cur->w,
+ screen_info[i].width, screen_info[i].height); + screen_info[i].x_org, screen_info[i].y_org,
+ else + screen_info[i].width, screen_info[i].height);
+ XMoveWindow(d, cur->w, + else
+ screen_info[i].x_org + ((screen_info[i].width - ww) / 2), + XMoveWindow(d, cur->w,
+ screen_info[i].y_org + ((screen_info[i].height - wh) / 2)); + screen_info[i].x_org + ((screen_info[i].width - ww) / 2),
+ } + screen_info[i].y_org + ((screen_info[i].height - wh) / 2));
+ return 0;
+ } + }
+ } + }
+ return 1; + return 0;
+} +}
+ +
void win_center() { void win_center() {
@ -76,7 +75,7 @@ index 0cc1293..665b0f8 100644
} }
void win_fs() { void win_fs() {
@@ -185,8 +211,8 @@ void win_fs() { @@ -185,8 +210,8 @@ void win_fs() {
if ((cur->f = cur->f ? 0 : 1)) { if ((cur->f = cur->f ? 0 : 1)) {
win_size(cur->w, &cur->wx, &cur->wy, &cur->ww, &cur->wh); win_size(cur->w, &cur->wx, &cur->wy, &cur->ww, &cur->wh);