M gnu/local.mk => gnu/local.mk +1 -0
@@ 829,6 829,7 @@ dist_patch_DATA = \
%D%/packages/patches/slim-session.patch \
%D%/packages/patches/slim-config.patch \
%D%/packages/patches/slim-sigusr1.patch \
+ %D%/packages/patches/slim-reset.patch \
%D%/packages/patches/slock-CVE-2016-6866.patch \
%D%/packages/patches/slurm-configure-remove-nonfree-contribs.patch \
%D%/packages/patches/soprano-find-clucene.patch \
M gnu/packages/display-managers.scm => gnu/packages/display-managers.scm +1 -0
@@ 199,6 199,7 @@ create smooth, animated user interfaces.")
(sha256
(base32 "1pqhk22jb4aja4hkrm7rjgbgzjyh7i4zswdgf5nw862l2znzxpi1"))
(patches (search-patches "slim-config.patch"
+ "slim-reset.patch"
"slim-session.patch"
"slim-sigusr1.patch"))))
(build-system cmake-build-system)
A gnu/packages/patches/slim-reset.patch => gnu/packages/patches/slim-reset.patch +33 -0
@@ 0,0 1,33 @@
+Do not reset chosen session and maintain the session-choser dialog after a
+failed login attempt.
+
+Patch by E. Bavier
+
+--- slim-1.3.6/panel.cpp.orig 1969-12-31 18:00:00.000000000 -0600
++++ slim-1.3.6/panel.cpp 2016-10-17 17:00:07.259649063 -0500
+@@ -260,13 +260,12 @@
+ }
+
+ void Panel::ClearPanel() {
+- session_name = "";
+- session_exec = "";
+ Reset();
+ XClearWindow(Dpy, Root);
+ XClearWindow(Dpy, Win);
+ Cursor(SHOW);
+ ShowText();
++ ShowSession();
+ XFlush(Dpy);
+ }
+
+@@ -760,9 +760,7 @@
+ pair<string,string> ses = cfg->nextSession();
+ session_name = ses.first;
+ session_exec = ses.second;
+- if (session_name.size() > 0) {
+- ShowSession();
+- }
++ ShowSession();
+ }
+
+ /* Display session type on the screen */