diff options
Diffstat (limited to 'community/lightdm/lightdm-1.5.1-systemd_login1_power.patch')
-rwxr-xr-x | community/lightdm/lightdm-1.5.1-systemd_login1_power.patch | 211 |
1 files changed, 0 insertions, 211 deletions
diff --git a/community/lightdm/lightdm-1.5.1-systemd_login1_power.patch b/community/lightdm/lightdm-1.5.1-systemd_login1_power.patch deleted file mode 100755 index 0bcb24589..000000000 --- a/community/lightdm/lightdm-1.5.1-systemd_login1_power.patch +++ /dev/null @@ -1,211 +0,0 @@ -diff -up lightdm-1.5.1/liblightdm-gobject/power.c.systemd_login1_power lightdm-1.5.1/liblightdm-gobject/power.c ---- lightdm-1.5.1/liblightdm-gobject/power.c.systemd_login1_power 2013-03-05 20:40:10.000000000 -0600 -+++ lightdm-1.5.1/liblightdm-gobject/power.c 2013-03-09 11:31:00.169897568 -0600 -@@ -17,6 +17,7 @@ - - static GDBusProxy *upower_proxy = NULL; - static GDBusProxy *ck_proxy = NULL; -+static GDBusProxy *login1_proxy = NULL; - - static gboolean - upower_call_function (const gchar *function, gboolean default_result, GError **error) -@@ -147,6 +148,59 @@ ck_call_function (const gchar *function, - return function_result; - } - -+static gboolean -+login1_call_function (const gchar *function, GVariant *parameters, gboolean default_result, GError **error) -+{ -+ GVariant *result; -+ gboolean function_result = FALSE; -+ const gchar *true_result = "yes"; -+ gchar *str_result; -+ -+ if (!login1_proxy) -+ { -+ login1_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, -+ G_DBUS_PROXY_FLAGS_NONE, -+ NULL, -+ "org.freedesktop.login1", -+ "/org/freedesktop/login1", -+ "org.freedesktop.login1.Manager", -+ NULL, -+ error); -+ if (!login1_proxy) -+ return FALSE; -+ } -+ -+ result = g_dbus_proxy_call_sync (login1_proxy, -+ function, -+ parameters, -+ G_DBUS_CALL_FLAGS_NONE, -+ -1, -+ NULL, -+ error); -+ -+ if (!result) -+ return default_result; -+ -+ if (g_variant_is_of_type (result, G_VARIANT_TYPE ("(b)"))) -+ g_variant_get (result, "(s)", &function_result); -+ -+ /** -+ * CanReboot, CanPowerOff returns a string "yes", "no", or "challenge", not a boolean as ConsoleKit -+ **/ -+ if (g_variant_is_of_type (result, G_VARIANT_TYPE ("(s)"))) { -+ g_variant_get (result, "(b)", str_result); -+ if(g_strcmp0(str_result,true_result) == 0) { -+ function_result = TRUE; -+ } -+ else { -+ function_result = default_result; -+ } -+ } -+ -+ g_variant_unref (result); -+ return function_result; -+} -+ - /** - * lightdm_get_can_restart: - * -@@ -157,7 +211,11 @@ ck_call_function (const gchar *function, - gboolean - lightdm_get_can_restart (void) - { -- return ck_call_function ("CanRestart", FALSE, NULL); -+ gboolean function_result = FALSE; -+ function_result = login1_call_function ("CanReboot", NULL, FALSE, NULL); -+ if (!function_result) -+ function_result = ck_call_function ("CanRestart", FALSE, NULL); -+ return function_result; - } - - /** -@@ -171,7 +229,11 @@ lightdm_get_can_restart (void) - gboolean - lightdm_restart (GError **error) - { -- return ck_call_function ("Restart", TRUE, error); -+ gboolean function_result = FALSE; -+ function_result = login1_call_function ("Reboot", g_variant_new("(b)",0), TRUE, error); -+ if (!function_result) -+ function_result = ck_call_function ("Restart", TRUE, error); -+ return function_result; - } - - /** -@@ -184,7 +246,11 @@ lightdm_restart (GError **error) - gboolean - lightdm_get_can_shutdown (void) - { -- return ck_call_function ("CanStop", FALSE, NULL); -+ gboolean function_result = FALSE; -+ function_result = login1_call_function ("CanPowerOff", NULL, FALSE, NULL); -+ if (!function_result) -+ function_result = ck_call_function ("CanStop", FALSE, NULL); -+ return function_result; - } - - /** -@@ -198,5 +264,9 @@ lightdm_get_can_shutdown (void) - gboolean - lightdm_shutdown (GError **error) - { -- return ck_call_function ("Stop", TRUE, error); -+ gboolean function_result = FALSE; -+ function_result = login1_call_function ("PowerOff", g_variant_new("(b)",0), TRUE, error); -+ if (!function_result) -+ function_result = ck_call_function ("Stop", TRUE, error); -+ return function_result; - } -diff -up lightdm-1.5.1/liblightdm-qt/power.cpp.systemd_login1_power lightdm-1.5.1/liblightdm-qt/power.cpp ---- lightdm-1.5.1/liblightdm-qt/power.cpp.systemd_login1_power 2013-03-05 20:40:10.000000000 -0600 -+++ lightdm-1.5.1/liblightdm-qt/power.cpp 2013-03-09 11:36:47.140559838 -0600 -@@ -15,6 +15,7 @@ - #include <QtCore/QVariant> - #include <QtDBus/QDBusInterface> - #include <QtDBus/QDBusReply> -+#include <QDebug> - - #include "config.h" - -@@ -26,11 +27,13 @@ public: - PowerInterfacePrivate(); - QScopedPointer<QDBusInterface> powerManagementInterface; - QScopedPointer<QDBusInterface> consoleKitInterface; -+ QScopedPointer<QDBusInterface> login1Interface; - }; - - PowerInterface::PowerInterfacePrivate::PowerInterfacePrivate() : - powerManagementInterface(new QDBusInterface("org.freedesktop.UPower","/org/freedesktop/UPower", "org.freedesktop.UPower", QDBusConnection::systemBus())), -- consoleKitInterface(new QDBusInterface("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", QDBusConnection::systemBus())) -+ consoleKitInterface(new QDBusInterface("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", QDBusConnection::systemBus())), -+ login1Interface(new QDBusInterface("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus())) - { - } - -@@ -80,34 +83,55 @@ void PowerInterface::hibernate() - - bool PowerInterface::canShutdown() - { -+ -+ if ( d->login1Interface->isValid() ) { -+ QDBusReply<QString> reply1 = d->login1Interface->call("CanPowerOff"); -+ if (reply1.isValid()) { -+ return (reply1.value()=="yes"); -+ } -+ } -+ qWarning() << d->login1Interface->lastError(); -+ - QDBusReply<bool> reply = d->consoleKitInterface->call("CanStop"); - if (reply.isValid()) { - return reply.value(); - } -- else { -- return false; -- } -+ -+ return false; - } - - void PowerInterface::shutdown() - { -- d->consoleKitInterface->call("Stop"); -+ if ( d->login1Interface->isValid() ) -+ d->login1Interface->call("PowerOff",false); -+ else -+ d->consoleKitInterface->call("Stop"); - } - - bool PowerInterface::canRestart() - { -+ if ( d->login1Interface->isValid() ) { -+ QDBusReply<QString> reply1 = d->login1Interface->call("CanReboot"); -+ if (reply1.isValid()) { -+ return (reply1.value()=="yes"); -+ } -+ } -+ qWarning() << d->login1Interface->lastError(); -+ - QDBusReply<bool> reply = d->consoleKitInterface->call("CanRestart"); - if (reply.isValid()) { - return reply.value(); - } -- else { -- return false; -- } -+ -+ return false; - } - - void PowerInterface::restart() - { -- d->consoleKitInterface->call("Restart"); -+ if ( d->login1Interface->isValid() ) -+ d->login1Interface->call("Reboot",false); -+ else -+ d->consoleKitInterface->call("Restart"); - } - - #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) |