diff options
author | William Brown <[email protected]> | 2012-11-20 00:08:50 +1030 |
---|---|---|
committer | William Brown <[email protected]> | 2012-11-21 10:14:47 +1030 |
commit | bb165fa927540f40b2b2afce1b4703f6e2cffbb1 (patch) | |
tree | fe161a73334a92456447a2c8e35ca0d95e25a262 /src | |
parent | d0eea338cc627b3083e16669a7f3e7a738410818 (diff) | |
download | mate-power-manager-bb165fa927540f40b2b2afce1b4703f6e2cffbb1.tar.bz2 mate-power-manager-bb165fa927540f40b2b2afce1b4703f6e2cffbb1.tar.xz |
This now uses the gvariant, and fixes some code logic issues
Diffstat (limited to 'src')
-rw-r--r-- | src/gpm-manager.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/gpm-manager.c b/src/gpm-manager.c index 3236406..dc838c5 100644 --- a/src/gpm-manager.c +++ b/src/gpm-manager.c @@ -1851,7 +1851,7 @@ gpm_manager_systemd_inhibit (GDBusProxy *proxy) { //GDBusProxy *proxy; GError *error = NULL; gint32 r = -1; - + GVariant *res; //proxy == NULL; /* Should we define these elsewhere? */ const char* arg_what = "handle-power-key:handle-suspend-key:handle-lid-switch"; @@ -1874,7 +1874,7 @@ gpm_manager_systemd_inhibit (GDBusProxy *proxy) { g_error_free (error); return -1; } - r = g_dbus_proxy_call_sync (proxy, "Inhibit", + res = g_dbus_proxy_call_sync (proxy, "Inhibit", g_variant_new( "(ssss)", arg_what, arg_who, @@ -1886,11 +1886,17 @@ gpm_manager_systemd_inhibit (GDBusProxy *proxy) { NULL, &error ); - egg_debug ("Inhibiting systemd sleep - fd = %i", r); - if (r < 1) { + if (error == NULL) { + g_variant_get(res, "(h)", &r); + egg_debug ("Inhibiting systemd sleep - fd = %i", r); + } else if (error != NULL) { egg_error ("Error in dbus - %s", error->message); g_error_free (error); - return -EIO; + return -EIO; + } + if (r < 1) { + egg_error ("Error in FD was less than or 0 - %i", r); + return -EIO; } egg_debug ("Inhibiting systemd sleep - success"); return r; |