[gnome-settings-daemon/gnome-3-18] power: Ensure we blank the screen when locked
- From: Rui Matos <rtcm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon/gnome-3-18] power: Ensure we blank the screen when locked
- Date: Tue, 4 Oct 2016 09:45:50 +0000 (UTC)
commit adc368f6b8c2fb55704d8853fdef864f76ade897
Author: Rui Matos <tiagomatos gmail com>
Date: Mon Oct 3 16:13:27 2016 +0200
power: Ensure we blank the screen when locked
When the session is inhibited from going idle e.g. because a media
player is active, we still want to blank the screen if the session is
locked (i.e. the "screensaver" is up).
Otherwise, we'd blank the screen when the session gets locked but then
on user activity we'd go back to NORMAL mode, unblanking the screen,
and ending up without an idle watch to blank again after a while since
we clear all watches and exit early if idle is inhibited.
https://bugzilla.gnome.org/show_bug.cgi?id=772248
plugins/power/gsd-power-manager.c | 41 ++++++++++++++----------------------
1 files changed, 16 insertions(+), 25 deletions(-)
---
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
index 0e03878..fb2ce2c 100644
--- a/plugins/power/gsd-power-manager.c
+++ b/plugins/power/gsd-power-manager.c
@@ -1662,7 +1662,6 @@ idle_configure (GsdPowerManager *manager)
{
gboolean is_idle_inhibited;
GsdPowerActionType action_type;
- guint timeout_blank;
guint timeout_sleep;
guint timeout_dim;
gboolean on_battery;
@@ -1674,6 +1673,22 @@ idle_configure (GsdPowerManager *manager)
return;
}
+ /* set up blank callback only when the screensaver is on,
+ * as it's what will drive the blank */
+ clear_idle_watch (manager->priv->idle_monitor,
+ &manager->priv->idle_blank_id);
+ if (manager->priv->screensaver_active) {
+ /* The tail is wagging the dog.
+ * The screensaver coming on will blank the screen.
+ * If an event occurs while the screensaver is on,
+ * the aggressive idle watch will handle it */
+ guint timeout_blank = SCREENSAVER_TIMEOUT_BLANK;
+ g_debug ("setting up blank callback for %is", timeout_blank);
+ manager->priv->idle_blank_id = gnome_idle_monitor_add_idle_watch
(manager->priv->idle_monitor,
+ timeout_blank * 1000,
+ idle_triggered_idle_cb,
manager, NULL);
+ }
+
/* are we inhibited from going idle */
if (!manager->priv->session_is_active || is_idle_inhibited) {
if (is_idle_inhibited)
@@ -1683,8 +1698,6 @@ idle_configure (GsdPowerManager *manager)
idle_set_mode (manager, GSD_POWER_IDLE_MODE_NORMAL);
clear_idle_watch (manager->priv->idle_monitor,
- &manager->priv->idle_blank_id);
- clear_idle_watch (manager->priv->idle_monitor,
&manager->priv->idle_sleep_id);
clear_idle_watch (manager->priv->idle_monitor,
&manager->priv->idle_dim_id);
@@ -1694,28 +1707,6 @@ idle_configure (GsdPowerManager *manager)
return;
}
- /* set up blank callback only when the screensaver is on,
- * as it's what will drive the blank */
- timeout_blank = 0;
- if (manager->priv->screensaver_active) {
- /* The tail is wagging the dog.
- * The screensaver coming on will blank the screen.
- * If an event occurs while the screensaver is on,
- * the aggressive idle watch will handle it */
- timeout_blank = SCREENSAVER_TIMEOUT_BLANK;
- }
-
- clear_idle_watch (manager->priv->idle_monitor,
- &manager->priv->idle_blank_id);
-
- if (timeout_blank != 0) {
- g_debug ("setting up blank callback for %is", timeout_blank);
-
- manager->priv->idle_blank_id = gnome_idle_monitor_add_idle_watch
(manager->priv->idle_monitor,
- timeout_blank * 1000,
- idle_triggered_idle_cb,
manager, NULL);
- }
-
/* only do the sleep timeout when the session is idle
* and we aren't inhibited from sleeping (or logging out, etc.) */
on_battery = up_client_get_on_battery (manager->priv->up_client);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]