New version 4.11.8, add fix-screenlocker-ulock patch from OpenSUSE to fix issues with unlock

This commit is contained in:
Andrey Bondrov 2014-04-09 18:02:32 +11:00
parent 85528887ed
commit f83049907e
3 changed files with 132 additions and 3 deletions

View file

@ -1,3 +1,3 @@
sources: sources:
kdebase-workspace-kdm-2.7.2.tar.bz2: b5cfb60419c724831941fb724d4148987adc40ba kdebase-workspace-kdm-2.7.2.tar.bz2: b5cfb60419c724831941fb724d4148987adc40ba
kde-workspace-4.11.7.tar.xz: 515c687a5a967e14e0470012e99ca2ae4cd86700 kde-workspace-4.11.8.tar.xz: e44b73ea1e2446258882d10694ca2896e1cc6b17

View file

@ -0,0 +1,116 @@
diff --git ksmserver/screenlocker/greeter/greeterapp.cpp ksmserver/screenlocker/greeter/greeterapp.cpp
index c5e2f85..475d223 100644
--- ksmserver/screenlocker/greeter/greeterapp.cpp
+++ ksmserver/screenlocker/greeter/greeterapp.cpp
@@ -383,6 +383,12 @@ void UnlockApp::setImmediateLock(bool immediate)
m_immediateLock = immediate;
}
+void UnlockApp::switchToImmediateLock()
+{
+ setImmediateLock(true);
+ setLockedPropertyOnViews();
+}
+
bool UnlockApp::eventFilter(QObject *obj, QEvent *event)
{
if (obj != this && event->type() == QEvent::Show) {
diff --git ksmserver/screenlocker/greeter/greeterapp.h ksmserver/screenlocker/greeter/greeterapp.h
index 8b79188..895337e 100644
--- ksmserver/screenlocker/greeter/greeterapp.h
+++ ksmserver/screenlocker/greeter/greeterapp.h
@@ -44,6 +44,7 @@ public:
void setTesting(bool enable);
void setImmediateLock(bool immediateLock);
+ void switchToImmediateLock();
public Q_SLOTS:
void desktopResized();
diff --git ksmserver/screenlocker/greeter/main.cpp ksmserver/screenlocker/greeter/main.cpp
index d898734..d5c6a2b 100644
--- ksmserver/screenlocker/greeter/main.cpp
+++ ksmserver/screenlocker/greeter/main.cpp
@@ -24,11 +24,28 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <iostream>
+#include <signal.h>
+
#include "greeterapp.h"
static const char description[] = I18N_NOOP( "Greeter for the KDE Plasma Workspaces Screen locker" );
static const char version[] = "0.1";
+ScreenLocker::UnlockApp *m_instance;
+
+static void signalhandler(int signum)
+{
+ switch(signum)
+ {
+ case SIGTERM: //SIGHUP:
+ m_instance->exit(1);
+ break;
+ case SIGUSR1:
+ m_instance->switchToImmediateLock();
+ break;
+ }
+}
+
int main(int argc, char* argv[])
{
KAboutData aboutData( "kscreenlocker_greet", 0, ki18n( "KScreenLocker Greeter" ),
@@ -60,6 +77,7 @@ int main(int argc, char* argv[])
KCmdLineArgs::addCmdLineOptions(options);
ScreenLocker::UnlockApp app;
+ m_instance = &app;
KGlobal::locale()->insertCatalog(QLatin1String( "libkworkspace" ));
app.disableSessionManagement(); // manually-started
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
@@ -75,5 +93,12 @@ int main(int argc, char* argv[])
// This allow ksmserver to know when the applicaion has actually finished setting itself up.
// Crucial for blocking until it is ready, ensuring locking happens before sleep, e.g.
std::cout << "Locked at " << QDateTime::currentDateTime().toTime_t() << std::endl;
+
+ struct sigaction sa;
+ sa.sa_handler = signalhandler;
+ sigemptyset(&sa.sa_mask);
+ sa.sa_flags = 0;
+ sigaction(SIGTERM /*SIGHUP*/, &sa, 0);
+ sigaction(SIGUSR1, &sa, 0);
return app.exec();
}
diff --git ksmserver/screenlocker/ksldapp.cpp ksmserver/screenlocker/ksldapp.cpp
index 3dfcc9e..d43fde7 100644
--- ksmserver/screenlocker/ksldapp.cpp
+++ ksmserver/screenlocker/ksldapp.cpp
@@ -46,6 +46,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <X11/Xlib.h>
// other
#include <unistd.h>
+#include <signal.h>
namespace ScreenLocker
{
@@ -174,6 +175,10 @@ void KSldApp::lock(bool immediateLock)
// already locked or acquiring lock, no need to lock again
// but make sure it's really locked
endGraceTime();
+ if (immediateLock) {
+ // signal the greeter to switch to immediateLock mode
+ kill(m_lockProcess->pid(), SIGUSR1);
+ }
return;
}
@@ -369,7 +374,8 @@ void KSldApp::unlock()
return;
}
s_graceTimeKill = true;
- m_lockProcess->kill();
+ // signal greeter to quit
+ m_lockProcess->terminate(); //kill(m_lockProcess->pid(), SIGHUP);
}
void KSldApp::inhibit()

View file

@ -11,8 +11,8 @@
Summary: KDE 4 application workspace components Summary: KDE 4 application workspace components
Name: kdebase4-workspace Name: kdebase4-workspace
Version: 4.11.7 Version: 4.11.8
Release: 3 Release: 2
Epoch: 2 Epoch: 2
License: GPLv2+ License: GPLv2+
Group: Graphical desktop/KDE Group: Graphical desktop/KDE
@ -51,6 +51,12 @@ Patch6: kde-workspace-4.10.3-pager-icons.patch
Patch7: kde-workspace-4.10.3-devicenotifier.patch Patch7: kde-workspace-4.10.3-devicenotifier.patch
# Fix screenlocker greeter focus after Alt modifier is pressed (keyboard layout switching etc) # Fix screenlocker greeter focus after Alt modifier is pressed (keyboard layout switching etc)
Patch8: kde-workspace-4.10.3-greeter.patch Patch8: kde-workspace-4.10.3-greeter.patch
# Patch from OpenSUSE, fixes 2 issues:
# * password input dialog was not shown under certain circumstances
# (kde#327947, kde#329076, bnc#864305)
# * screensaver processes might keep running in background when
# unlocking the screen (kde#224200, bnc#809835)
Patch9: kdebase4-workspace-4.11.8-fix-screenlocker-ulock.patch
# Prefer system locale for KDM when reading it from KDM config fails # Prefer system locale for KDM when reading it from KDM config fails
Patch10: kde-workspace-4.10.3-fix-kcmkdm-locale.patch Patch10: kde-workspace-4.10.3-fix-kcmkdm-locale.patch
Patch11: kdebase-workspace-4.2.0-fix_gtkrc_iaora.patch Patch11: kdebase-workspace-4.2.0-fix_gtkrc_iaora.patch
@ -1544,6 +1550,7 @@ based on kdebase.
%patch6 -p1 %patch6 -p1
%patch7 -p1 %patch7 -p1
%patch8 -p1 %patch8 -p1
%patch9 -p0
%patch10 -p1 %patch10 -p1
%patch11 -p1 %patch11 -p1
%patch12 -p1 %patch12 -p1
@ -1661,6 +1668,12 @@ for f in %{buildroot}%{_kde_applicationsdir}/*.desktop ; do
done done
%changelog %changelog
* Tue Apr 08 2014 Andrey Bondrov <andrey.bondrov@rosalab.ru> 2:4.11.8-2
- Add fix-screenlocker-ulock patch from OpenSUSE to fix issues with unlock
* Wed Apr 02 2014 Andrey Bondrov <andrey.bondrov@rosalab.ru> 2:4.11.8-1
- New version 4.11.8
* Thu Mar 20 2014 Andrey Bondrov <andrey.bondrov@rosalab.ru> 2:4.11.7-3 * Thu Mar 20 2014 Andrey Bondrov <andrey.bondrov@rosalab.ru> 2:4.11.7-3
- Use different kdm.service for ROSA and OpenMandriva - Use different kdm.service for ROSA and OpenMandriva