awesomebar: use previously tiled when hiding client and the hidden client was the last tiled client

pull/19/head
bakkeby 4 years ago
parent b150231879
commit 7782580903

@ -1,16 +1,16 @@
From ee2798df6d16e39bfb8ecbadd06891cf91ebfed6 Mon Sep 17 00:00:00 2001
From 334739dbc87c1da12a00712adbd0528a64800d82 Mon Sep 17 00:00:00 2001
From: bakkeby <bakkeby@gmail.com>
Date: Mon, 20 Jul 2020 09:50:33 +0200
Subject: [PATCH 2/2] Adding awesomebar
---
config.def.h | 7 +-
dwm.c | 21 +++---
patch/bar_awesomebar.c | 167 +++++++++++++++++++++++++++++++++++++++++
patch/bar_awesomebar.h | 8 ++
dwm.c | 21 ++---
patch/bar_awesomebar.c | 177 +++++++++++++++++++++++++++++++++++++++++
patch/bar_awesomebar.h | 9 +++
patch/include.c | 3 +-
patch/include.h | 3 +-
6 files changed, 197 insertions(+), 12 deletions(-)
6 files changed, 208 insertions(+), 12 deletions(-)
create mode 100644 patch/bar_awesomebar.c
create mode 100644 patch/bar_awesomebar.h
@ -130,10 +130,10 @@ index 03dccfb..6243f6f 100644
diff --git a/patch/bar_awesomebar.c b/patch/bar_awesomebar.c
new file mode 100644
index 0000000..5a3a588
index 0000000..75155fb
--- /dev/null
+++ b/patch/bar_awesomebar.c
@@ -0,0 +1,167 @@
@@ -0,0 +1,177 @@
+int
+width_awesomebar(Bar *bar, BarWidthArg *a)
+{
@ -252,7 +252,7 @@ index 0000000..5a3a588
+ } else {
+ n = nexttiled(c);
+ if (!n)
+ n = nexttiled(c->mon->clients);
+ n = prevtiled(c);
+ }
+ focus(n);
+ arrange(c->mon);
@ -285,6 +285,16 @@ index 0000000..5a3a588
+ }
+}
+
+Client *
+prevtiled(Client *c)
+{
+ Client *p, *i;
+ for (p = NULL, i = c->mon->clients; c && i != c; i = i->next)
+ if (ISVISIBLE(i) && !HIDDEN(i))
+ p = i;
+ return p;
+}
+
+void
+showhideclient(const Arg *arg)
+{
@ -304,10 +314,10 @@ index 0000000..5a3a588
\ No newline at end of file
diff --git a/patch/bar_awesomebar.h b/patch/bar_awesomebar.h
new file mode 100644
index 0000000..a99986e
index 0000000..83572f6
--- /dev/null
+++ b/patch/bar_awesomebar.h
@@ -0,0 +1,8 @@
@@ -0,0 +1,9 @@
+static int width_awesomebar(Bar *bar, BarWidthArg *a);
+static int draw_awesomebar(Bar *bar, BarDrawArg *a);
+static int click_awesomebar(Bar *bar, Arg *arg, BarClickArg *a);
@ -315,6 +325,7 @@ index 0000000..a99986e
+static void hide(Client *c);
+static void show(Client *c);
+static void togglewin(const Arg *arg);
+static Client *prevtiled(Client *c);
+static void showhideclient(const Arg *arg);
\ No newline at end of file
diff --git a/patch/include.c b/patch/include.c

Loading…
Cancel
Save