on xenial help sign in
unbreak locking the device from the session indicator
cced04dLukáš Tinkl
plugins/Unity/Session/dbusunitysessionservice.cpp+4−1
@@ -336,6 +336,9 @@ void DBusUnitySessionService::PromptLock()
336
336
337void DBusUnitySessionService::Lock()
337void DBusUnitySessionService::Lock()
338{
338{
339+ // signal u8 to show the lockscreen/greeter
340+ PromptLock();
341+
339 // lock the session using the org.freedesktop.DisplayManager system DBUS service
342 // lock the session using the org.freedesktop.DisplayManager system DBUS service
340 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
343 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
341 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
344 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
@@ -348,7 +351,7 @@ void DBusUnitySessionService::Lock()
348 connect(watcher, &QDBusPendingCallWatcher::finished,
351 connect(watcher, &QDBusPendingCallWatcher::finished,
349 this, [this](QDBusPendingCallWatcher* watcher) {
352 this, [this](QDBusPendingCallWatcher* watcher) {
350
353
351− QDBusPendingReply<QVariant> reply = *watcher;
354+ QDBusPendingReply<void> reply = *watcher;
352 watcher->deleteLater();
355 watcher->deleteLater();
353 if (reply.isError()) {
356 if (reply.isError()) {
354 qWarning() << "Lock call failed" << reply.error().message();
357 qWarning() << "Lock call failed" << reply.error().message();
qml/Shell.qml+5
@@ -428,6 +428,11 @@ Item {
428 }
428 }
429 }
429 }
430
430
431+ Connections {
432+ target: DBusUnitySessionService
433+ onLockRequested: lightDM.greeter.showGreeter()
434+ }
435+
431 Timer {
436 Timer {
432 // See powerConnection for why this is useful
437 // See powerConnection for why this is useful
433 id: showGreeterDelayed
438 id: showGreeterDelayed