diff options
Diffstat (limited to 'lxde-base/lxsession/files/lxsession-0.4.9.2-fix-logind-dbus-calls.patch')
-rw-r--r-- | lxde-base/lxsession/files/lxsession-0.4.9.2-fix-logind-dbus-calls.patch | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/lxde-base/lxsession/files/lxsession-0.4.9.2-fix-logind-dbus-calls.patch b/lxde-base/lxsession/files/lxsession-0.4.9.2-fix-logind-dbus-calls.patch new file mode 100644 index 000000000000..91d15836241a --- /dev/null +++ b/lxde-base/lxsession/files/lxsession-0.4.9.2-fix-logind-dbus-calls.patch @@ -0,0 +1,111 @@ +Taken from: +http://svnweb.mageia.org/packages/cauldron/lxsession/current/SOURCES/lxsession-0.4.9.2-fix-logind-dbus-calls.patch?revision=549605&view=co&pathrev=549606 + +--- lxsession-0.4.9.2/lxsession-logout/dbus-interface.c.0000 2013-04-12 22:02:19.000000000 +0100 ++++ lxsession-0.4.9.2/lxsession-logout/dbus-interface.c 2013-11-05 11:00:34.038965063 +0000 +@@ -244,10 +244,11 @@ + return function_result; + } + +-static void +-logind_call_function (const gchar *function, gboolean value, GError **error) ++static char * ++logind_call_function (const gchar *function) + { + GVariant *result; ++ GError *err = NULL; + + if (!logind_proxy) + { +@@ -258,20 +259,28 @@ + "/org/freedesktop/login1", + "org.freedesktop.login1.Manager", + NULL, +- error); ++ &err); ++ if (err != NULL) ++ g_error_free(err); + if (!logind_proxy) +- return; ++ return NULL; + } + + result = g_dbus_proxy_call_sync (logind_proxy, + function, +- g_variant_new ("(b)", value), ++ g_variant_new ("(b)", TRUE), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, +- error); +- g_variant_unref (result); +- return; ++ &err); ++ if (result) ++ g_variant_unref (result); ++ if (err != NULL) { ++ char *r = strdup(err->message); ++ g_error_free(err); ++ return r; ++ } ++ return NULL; + } + + gboolean +@@ -280,10 +289,10 @@ + return logind_query ("CanPowerOff", FALSE, NULL); + } + +-void +-dbus_logind_PowerOff (GError **error) ++char * ++dbus_logind_PowerOff (void) + { +- logind_call_function ("PowerOff", TRUE, error); ++ return logind_call_function ("PowerOff"); + } + + gboolean +@@ -292,10 +301,10 @@ + return logind_query ("CanReboot", FALSE, NULL); + } + +-void +-dbus_logind_Reboot (GError **error) ++char * ++dbus_logind_Reboot (void) + { +- logind_call_function ("Reboot", TRUE, error); ++ return logind_call_function ("Reboot"); + } + + gboolean +@@ -304,10 +313,10 @@ + return logind_query ("CanSuspend", FALSE, NULL); + } + +-void +-dbus_logind_Suspend (GError **error) ++char * ++dbus_logind_Suspend (void) + { +- logind_call_function ("Suspend", TRUE, error); ++ return logind_call_function ("Suspend"); + } + + gboolean +@@ -316,10 +325,10 @@ + return logind_query ("CanHibernate", FALSE, NULL); + } + +-void +-dbus_logind_Hibernate (GError **error) ++char * ++dbus_logind_Hibernate (void) + { +- logind_call_function ("Hibernate", TRUE, error); ++ return logind_call_function ("Hibernate"); + } + + /*** ConsoleKit mechanism ***/ + |