https://bugs.kde.org/show_bug.cgi?id=344456

--- Comment #3 from Lukáš Tinkl <lu...@kde.org> ---
Are you really sure there's no login1 service on DBUS? It may not be visible
but it's activated on first usage.

The code responsible for querying the suspend/hibernate capabilities first
tries with login1 and only if that's not available, falls back to upower. It
not only checks whether the method is available (CanSuspend) but also whether
it's allowed by polkit (SuspendAllowed), see below for the snippet:

   if (m_login1Interface) {
        QDBusPendingReply<QString> canSuspend =
m_login1Interface.data()->asyncCall("CanSuspend");
        canSuspend.waitForFinished();
        if (canSuspend.isValid() && (canSuspend.value() == "yes" ||
canSuspend.value() == "challenge"))
            supported |= ToRam;

        QDBusPendingReply<QString> canHibernate =
m_login1Interface.data()->asyncCall("CanHibernate");
        canHibernate.waitForFinished();
        if (canHibernate.isValid() && (canHibernate.value() == "yes" ||
canHibernate.value() == "challenge"))
            supported |= ToDisk;

        QDBusPendingReply<QString> canHybridSleep =
m_login1Interface.data()->asyncCall("CanHybridSleep");
        canHybridSleep.waitForFinished();
        if (canHybridSleep.isValid() && (canHybridSleep.value() == "yes" ||
canHybridSleep.value() == "challenge"))
            supported |= HybridSuspend;
    } else {
        if (m_upowerInterface->canSuspend() &&
m_upowerInterface->SuspendAllowed()) {
            qCDebug(POWERDEVIL) << "Can suspend";
            supported |= ToRam;
        }

        if (m_upowerInterface->canHibernate() &&
m_upowerInterface->HibernateAllowed()) {
            qCDebug(POWERDEVIL) << "Can hibernate";
            supported |= ToDisk;
        }
    }

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to