Group :: Graphical desktop/Other
RPM: xlockmore
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Patch: xlockmore-5.46-nologout.patch
Download
Download
diff -ur xlockmore-5.43/xlock/logout.c xlockmore-5.43.new/xlock/logout.c
--- xlockmore-5.43/xlock/logout.c 2014-06-29 11:02:51.000000000 +0000
+++ xlockmore-5.43.new/xlock/logout.c 2014-06-29 11:56:43.308044766 +0000
@@ -47,6 +47,7 @@
extern Bool inroot, inwindow, nolock, debug;
extern char *logoutCmd;
+extern Bool nologout;
/*-
* This file contains a function called logoutUser() that, when called,
@@ -397,6 +398,7 @@
exit(0);
}
}
+ if (nologout) return;
#ifdef CLOSEDOWN_LOGOUT
(void) finish(display, False);
#else
diff -ur xlockmore-5.43/xlock/resource.c xlockmore-5.43.new/xlock/resource.c
--- xlockmore-5.43/xlock/resource.c 2014-06-29 11:58:30.723057676 +0000
+++ xlockmore-5.43.new/xlock/resource.c 2014-06-29 11:53:27.118541800 +0000
@@ -473,6 +473,8 @@
{(char *) "-pipepassCmd", (char *) ".pipepassCmd", XrmoptionSepArg, (caddr_t) NULL},
#endif
{(char *) "-logoutCmd", (char *) ".logoutCmd", XrmoptionSepArg, (caddr_t) NULL},
+ {(char *) "-nologout", (char *) ".nologout", XrmoptionNoArg, (caddr_t) "on"},
+ {(char *) "+nologout", (char *) ".nologout", XrmoptionNoArg, (caddr_t) "off"},
{(char *) "-mailCmd", (char *) ".mailCmd", XrmoptionSepArg, (caddr_t) ""},
{(char *) "-mailIcon", (char *) ".mailIcon", XrmoptionSepArg, (caddr_t) ""},
@@ -696,6 +698,7 @@
{(char *) "-pipepassCmd string", (char *) "command into which to pipe the password when unlocking"},
#endif
{(char *) "-logoutCmd string", (char *) "command to run when automatically logging out"},
+ {(char *) "-/+nologout", (char *) "let logoutCmd run, but suppress/do not suppress logging out"},
{(char *) "-mailCmd string", (char *) "command to run to check for mail"},
{(char *) "-mailIcon string", (char *) "Icon to display when there is mail"},
{(char *) "-nomailIcon string", (char *) "Icon to display when there is no mail"},
@@ -869,6 +872,7 @@
char *pipepassCmd;
#endif
char *logoutCmd;
+Bool nologout;
char *mailCmd;
char *mailIcon;
@@ -1001,6 +1005,7 @@
{(void *) & pipepassCmd, (char *) "pipepassCmd", (char *) "PipePassCmd", (char *) "", t_String},
#endif
{(void *) & logoutCmd, (char *) "logoutCmd", (char *) "LogoutCmd", (char *) "", t_String},
+ {(void *) & nologout, (char *) "nologout", (char *) "nologout", (char *) "off", t_Bool},
#ifdef USE_DPMS
{(void *) & dpmsstandby, (char *) "dpmsstandby", (char *) "DPMSStandby", (char *) DEF_DPMSSTANDBY, t_Int},
{(void *) & dpmssuspend, (char *) "dpmssuspend", (char *) "DPMSSuspend", (char *) DEF_DPMSSUSPEND, t_Int},
diff -ur xlockmore-5.43/xlock/xlock.c xlockmore-5.43.new/xlock/xlock.c
--- xlockmore-5.43/xlock/xlock.c 2014-06-29 11:58:30.723057676 +0000
+++ xlockmore-5.43.new/xlock/xlock.c 2014-06-29 11:53:57.375390481 +0000
@@ -873,6 +873,7 @@
extern char *pipepassCmd;
#endif
extern char *logoutCmd;
+extern Bool nologout;
extern char *mailCmd;
extern char *mailIcon;
@@ -1720,7 +1720,7 @@
5 + 2 * (fontHeight));
XSetForeground(dsp, Scr[scr].gc, Scr[scr].fg_pixel);
- if (tried_logout) {
+ if (tried_logout && !nologout) {
putText(dsp, Scr[scr].window, Scr[scr].textgc, logoutFailedString,
True, left, &x, &y);
} else {
@@ -1730,7 +1730,7 @@
(void) sprintf(buf, " %s ", logoutButtonLabel);
XSetForeground(dsp, Scr[scr].gc, Scr[scr].white_pixel);
(void) XDrawString(dsp, Scr[scr].button, Scr[scr].gc,
- 0, fontAscent + 1, buf, strlen(buf));
+ 0, fontHeight - font->descent, buf, strlen(buf));
XSetForeground(dsp, Scr[scr].gc, Scr[scr].fg_pixel);
y += 5 + 2 * fontHeight;
putText(dsp, Scr[scr].window, Scr[scr].textgc, logoutButtonHelp,
diff -ur xlockmore-5.43/xlock/xlock.man xlockmore-5.43.new/xlock/xlock.man
--- xlockmore-5.43/xlock/xlock.man 2014-06-29 11:02:51.000000000 +0000
+++ xlockmore-5.43.new/xlock/xlock.man 2014-06-29 11:42:50.696690651 +0000
@@ -275,6 +275,9 @@
[
.BI \-logoutCmd " string"
]
+[
+.BI \-nologout
+]
.SH DESCRIPTION
.B xlock
@@ -1610,6 +1613,11 @@
command to execute when the program logs the user out (either via the autologout
or by pressing the logout button).
.TP 5
+.B \-nologout
+Use
+.B logoutCmd
+without actually logging out, e. g. if the command switches user instead.
+.TP 5
.BI \-mailCmd \ string
Text
.I string