systray: KLUDGE! do not remove systray icon when unmapped

pull/19/head
bakkeby 4 years ago
parent d7d72a24cb
commit 10bda6f323

@ -1,4 +1,4 @@
From d3e5ecd08e62ead2c7f29dc031aa529218a32ac8 Mon Sep 17 00:00:00 2001
From 6512bc9ac289e53948d9cdbdab5f88e6c60762d1 Mon Sep 17 00:00:00 2001
From: bakkeby <bakkeby@gmail.com>
Date: Tue, 7 Apr 2020 10:53:35 +0200
Subject: [PATCH 2/2] Adding systray patch
@ -25,7 +25,7 @@ index 4f68fe8..1952613 100644
static const char dmenufont[] = "monospace:size=10";
static const char col_gray1[] = "#222222";
diff --git a/dwm.c b/dwm.c
index 20f8309..8cfbb1a 100644
index 20f8309..55a8297 100644
--- a/dwm.c
+++ b/dwm.c
@@ -59,12 +59,30 @@
@ -552,7 +552,7 @@ index 20f8309..8cfbb1a 100644
arrange(selmon);
}
@@ -1804,12 +2018,19 @@ unmapnotify(XEvent *e)
@@ -1804,12 +2018,18 @@ unmapnotify(XEvent *e)
setclientstate(c, WithdrawnState);
else
unmanage(c, 0);
@ -560,7 +560,6 @@ index 20f8309..8cfbb1a 100644
+ /* KLUDGE! sometimes icons occasionally unmap their windows, but do
+ * _not_ destroy them. We map those windows back */
+ XMapRaised(dpy, c->win);
+ removesystrayicon(c);
+ updatesystray();
}
}
@ -572,7 +571,7 @@ index 20f8309..8cfbb1a 100644
Monitor *m;
XSetWindowAttributes wa = {
.override_redirect = True,
@@ -1822,10 +2043,15 @@ updatebars(void)
@@ -1822,10 +2042,15 @@ updatebars(void)
for (m = mons; m; m = m->next) {
if (m->barwin)
continue;
@ -589,7 +588,7 @@ index 20f8309..8cfbb1a 100644
XMapRaised(dpy, m->barwin);
XSetClassHint(dpy, m->barwin, &ch);
}
@@ -2001,6 +2227,137 @@ updatestatus(void)
@@ -2001,6 +2226,138 @@ updatestatus(void)
if (!gettextprop(root, XA_WM_NAME, stext, sizeof(stext)))
strcpy(stext, "dwm-"VERSION);
drawbar(selmon);
@ -671,6 +670,7 @@ index 20f8309..8cfbb1a 100644
+ XMapWindow(dpy, systray->win);
+ XMapSubwindows(dpy, systray->win);
+ XSync(dpy, False);
+ drawbar(m);
+}
+
+void

@ -1,16 +1,16 @@
From dd88b0115deb4c9f42fc392e68ac8e72b5ed6877 Mon Sep 17 00:00:00 2001
From 397c2161e7ff08faf42c1fdc7f43b736cdde2f7f Mon Sep 17 00:00:00 2001
From: bakkeby <bakkeby@gmail.com>
Date: Mon, 20 Jul 2020 11:19:12 +0200
Subject: [PATCH 2/2] Adding systray module
---
config.def.h | 3 +
dwm.c | 130 ++++++++++++++++++++++++++----
dwm.c | 129 ++++++++++++++++++++++++++----
patch/bar_systray.c | 187 ++++++++++++++++++++++++++++++++++++++++++++
patch/bar_systray.h | 40 ++++++++++
patch/include.c | 3 +-
patch/include.h | 3 +-
6 files changed, 349 insertions(+), 17 deletions(-)
6 files changed, 348 insertions(+), 17 deletions(-)
create mode 100644 patch/bar_systray.c
create mode 100644 patch/bar_systray.h
@ -36,7 +36,7 @@ index 2534eac..d17b65c 100644
{ -1, 0, BAR_ALIGN_NONE, width_wintitle, draw_wintitle, click_wintitle, "wintitle" },
};
diff --git a/dwm.c b/dwm.c
index 03dccfb..ca79f5f 100644
index 03dccfb..ed3fc50 100644
--- a/dwm.c
+++ b/dwm.c
@@ -63,6 +63,8 @@ enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
@ -274,7 +274,7 @@ index 03dccfb..ca79f5f 100644
netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False);
netatom[NetWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False);
@@ -1956,6 +2050,12 @@ unmapnotify(XEvent *e)
@@ -1956,6 +2050,11 @@ unmapnotify(XEvent *e)
setclientstate(c, WithdrawnState);
else
unmanage(c, 0);
@ -282,7 +282,6 @@ index 03dccfb..ca79f5f 100644
+ /* KLUDGE! sometimes icons occasionally unmap their windows, but do
+ * _not_ destroy them. We map those windows back */
+ XMapRaised(dpy, c->win);
+ removesystrayicon(c);
+ drawbarwin(systray->bar);
}
}

Loading…
Cancel
Save