Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 372258 Details for
Bug 504046
xfce-extra/xfce4-power-manager: add systemd/login1 hibernate/suspend support
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch to the xfce4-power-manager sources
xfce4-power-manager-1.2.0-logind-support-for-suspend-hibernate.patch (text/plain), 4.50 KB, created by
pelopor
on 2014-03-10 07:27:26 UTC
(
hide
)
Description:
patch to the xfce4-power-manager sources
Filename:
MIME Type:
Creator:
pelopor
Created:
2014-03-10 07:27:26 UTC
Size:
4.50 KB
patch
obsolete
>From 244d0f09561eace29cbef819c2deb55b13701e25 Mon Sep 17 00:00:00 2001 >From: Mikhail Efremov <sem@altlinux.org> >Date: Mon, 8 Apr 2013 21:04:30 +0400 >Subject: [PATCH] Add systemd-logind support for suspend/hibernate. > >--- > configure.ac.in | 20 +++++++++++++++++ > src/xfpm-power-common.h | 8 +++++++ > src/xfpm-power.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++- > 3 files changed, 84 insertions(+), 1 deletion(-) > >diff --git a/src/xfpm-power-common.h b/src/xfpm-power-common.h >index 1040aed..11eaedc 100644 >--- a/src/xfpm-power-common.h >+++ b/src/xfpm-power-common.h >@@ -33,9 +33,17 @@ > #define UPOWER_PATH_WAKEUPS "/org/freedesktop/UPower/Wakeups" > #define UPOWER_IFACE_WAKEUPS "org.freedesktop.UPower.Wakeups" > >+#ifdef WITH_SLEEP_MANAGER_UPOWER > #define POLKIT_AUTH_SUSPEND "org.freedesktop.upower.suspend" > #define POLKIT_AUTH_HIBERNATE "org.freedesktop.upower.hibernate" >+#else >+#define LOGIND_NAME "org.freedesktop.login1" >+#define LOGIND_PATH "/org/freedesktop/login1" >+#define LOGIND_IFACE "org.freedesktop.login1.Manager" > >+#define POLKIT_AUTH_SUSPEND "org.freedesktop.login1.suspend" >+#define POLKIT_AUTH_HIBERNATE "org.freedesktop.login1.hibernate" >+#endif > > GPtrArray *xfpm_power_enumerate_devices (DBusGProxy *proxy); > >diff --git a/src/xfpm-power.c b/src/xfpm-power.c >index 796bef8..4a91e33 100644 >--- a/src/xfpm-power.c >+++ b/src/xfpm-power.c >@@ -72,7 +72,10 @@ struct XfpmPowerPrivate > > DBusGProxy *proxy; > DBusGProxy *proxy_prop; >- >+#ifndef WITH_SLEEP_MANAGER_UPOWER >+ DBusGProxy *proxy_logind; >+#endif >+ > GHashTable *hash; > > XfpmConsoleKit *console; >@@ -153,6 +156,7 @@ xfpm_power_check_polkit_auth (XfpmPower *power) > } > #endif > >+#ifdef WITH_SLEEP_MANAGER_UPOWER > static void > xfpm_power_check_pm (XfpmPower *power, GHashTable *props) > { >@@ -186,6 +190,32 @@ xfpm_power_check_pm (XfpmPower *power, GHashTable *props) > power->priv->can_hibernate = ret; > } > } >+#else >+static gboolean >+xfpm_power_can_sleep_method (XfpmPower *power, const char *method) >+{ >+ GError *error = NULL; >+ char *retstr = NULL; >+ gboolean ret = FALSE; >+ >+ if (!dbus_g_proxy_call (power->priv->proxy_logind, method, &error, >+ G_TYPE_INVALID, >+ G_TYPE_STRING, &retstr, >+ G_TYPE_INVALID)) >+ { >+ g_warning ("Unable to check %s method: %s", method, error->message); >+ g_error_free (error); >+ >+ return FALSE; >+ } >+ >+ if (retstr && !strcmp (retstr, "yes")) >+ ret = TRUE; >+ g_free (retstr); >+ >+ return ret; >+} >+#endif > > static void > xfpm_power_check_power (XfpmPower *power, GHashTable *props) >@@ -276,7 +306,12 @@ xfpm_power_get_properties (XfpmPower *power) > > props = xfpm_power_get_interface_properties (power->priv->proxy_prop, UPOWER_IFACE); > >+#ifdef WITH_SLEEP_MANAGER_UPOWER > xfpm_power_check_pm (power, props); >+#else >+ power->priv->can_suspend = xfpm_power_can_sleep_method (power, "CanSuspend"); >+ power->priv->can_hibernate = xfpm_power_can_sleep_method (power, "CanHibernate"); >+#endif > xfpm_power_check_lid (power, props); > xfpm_power_check_power (power, props); > >@@ -347,9 +382,16 @@ xfpm_power_sleep (XfpmPower *power, const gchar *sleep_time, gboolean force) > xfpm_lock_screen (); > } > >+#ifdef WITH_SLEEP_MANAGER_UPOWER > dbus_g_proxy_call (power->priv->proxy, sleep_time, &error, > G_TYPE_INVALID, > G_TYPE_INVALID); >+#else >+ dbus_g_proxy_call (power->priv->proxy_logind, sleep_time, &error, >+ G_TYPE_BOOLEAN, TRUE, >+ G_TYPE_INVALID, >+ G_TYPE_INVALID); >+#endif > > if ( error ) > { >@@ -1360,12 +1402,20 @@ xfpm_power_init (XfpmPower *power) > UPOWER_NAME, > UPOWER_PATH, > DBUS_INTERFACE_PROPERTIES); >+ > if (power->priv->proxy_prop == NULL) > { > g_critical ("Unable to create proxy for %s", UPOWER_NAME); > goto out; > } > >+#ifndef WITH_SLEEP_MANAGER_UPOWER >+ power->priv->proxy_logind = dbus_g_proxy_new_for_name (power->priv->bus, >+ LOGIND_NAME, >+ LOGIND_PATH, >+ LOGIND_IFACE); >+#endif >+ > xfpm_power_get_power_devices (power); > xfpm_power_get_properties (power); > #ifdef ENABLE_POLKIT >@@ -1467,6 +1517,11 @@ xfpm_power_finalize (GObject *object) > if ( power->priv->proxy_prop ) > g_object_unref (power->priv->proxy_prop); > >+#ifndef WITH_SLEEP_MANAGER_UPOWER >+ if ( power->priv->proxy_logind ) >+ g_object_unref (power->priv->proxy_logind); >+#endif >+ > g_hash_table_destroy (power->priv->hash); > > #ifdef ENABLE_POLKIT >-- >1.8.1.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 504046
:
372256
|
372258