From ffd6ffe68781a88d2711399ef74772b7fa0ecdcb Mon Sep 17 00:00:00 2001 From: clsr Date: Thu, 27 Dec 2018 10:37:07 +0100 Subject: Restore previous root window name on exit --- dwmclock.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'dwmclock.c') diff --git a/dwmclock.c b/dwmclock.c index b409555..95d9679 100644 --- a/dwmclock.c +++ b/dwmclock.c @@ -81,6 +81,7 @@ int main(void) Display *disp; int screen; Window root; + char *origname = NULL; act.sa_handler = handler; act.sa_flags = 0; @@ -90,19 +91,16 @@ int main(void) sigaction(SIGQUIT, &act, NULL); sigaction(SIGTERM, &act, NULL); - disp = XOpenDisplay(NULL); + screen = DefaultScreen(disp); + root = RootWindow(disp, screen); + XFetchName(disp, root, &origname); + #ifdef BATTERY for (i=0; !stop; ++i) { #else while (!stop) { #endif /* BATTERY */ - if (!disp) { - puts("Cannot open display!"); - return 1; - } - screen = DefaultScreen(disp); - root = RootWindow(disp, screen); #ifdef BATTERY if (i % (BAT_REFRESH_SECONDS) == 0) { curr = getnum(ENERGY_NOW) * MUL; @@ -151,8 +149,11 @@ int main(void) sleep(1); #endif /* EXACT_SLEEP */ } - XCloseDisplay(disp); + if (origname) { + XStoreName(disp, root, origname); + } + XCloseDisplay(disp); return 0; } -- cgit