From ad645ecb2db54ca919a9181fa0a8f94f497fd383 Mon Sep 17 00:00:00 2001 From: Eric Koegel Date: Sat, 31 May 2014 20:09:56 +0300 Subject: [PATCH] Restore screen power after sleep (Bug 10535) With this patch xfpm will cache the brightness level before going to sleep and set it back to that level after resuming from sleep. --- common/xfpm-brightness.c | 2 +- src/xfpm-power.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/common/xfpm-brightness.c b/common/xfpm-brightness.c index e18c617..e49338e 100644 --- a/common/xfpm-brightness.c +++ b/common/xfpm-brightness.c @@ -382,7 +382,7 @@ xfpm_brightness_helper_get_level (XfpmBrightness *brg, gint32 *level) } static gboolean -xfpm_brightness_helper_set_level (XfpmBrightness *brg, gint level) +xfpm_brightness_helper_set_level (XfpmBrightness *brg, gint32 level) { gboolean ret; GError *error = NULL; diff --git a/src/xfpm-power.c b/src/xfpm-power.c index d4091ad..3d63e45 100644 --- a/src/xfpm-power.c +++ b/src/xfpm-power.c @@ -57,6 +57,7 @@ #include "egg-idletime.h" #include "xfpm-systemd.h" #include "xfpm-suspend.h" +#include "xfpm-brightness.h" static void xfpm_power_finalize (GObject *object); @@ -307,6 +308,8 @@ xfpm_power_sleep (XfpmPower *power, const gchar *sleep_time, gboolean force) #ifdef WITH_NETWORK_MANAGER gboolean network_manager_sleep; #endif + XfpmBrightness *brightness; + gint32 brightness_level; if ( power->priv->inhibited && force == FALSE) { @@ -339,6 +342,10 @@ xfpm_power_sleep (XfpmPower *power, const gchar *sleep_time, gboolean force) #endif g_signal_emit (G_OBJECT (power), signals [SLEEPING], 0); + /* Get the current brightness level so we can use it after we suspend */ + brightness = xfpm_brightness_new(); + xfpm_brightness_setup (brightness); + xfpm_brightness_get_level (brightness, &brightness_level); #ifdef WITH_NETWORK_MANAGER g_object_get (G_OBJECT (power->priv->conf), @@ -424,6 +431,11 @@ xfpm_power_sleep (XfpmPower *power, const gchar *sleep_time, gboolean force) } g_signal_emit (G_OBJECT (power), signals [WAKING_UP], 0); + /* Check/update any changes while we slept */ + xfpm_power_get_properties (power); + /* Restore the brightness level from before we suspended */ + xfpm_brightness_set_level (brightness, brightness_level); + #ifdef WITH_NETWORK_MANAGER if ( network_manager_sleep ) { -- 2.0.0