Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2:PowerPC
gnome-power-manager
gnome-power-manager-notify-idle-sleep.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gnome-power-manager-notify-idle-sleep.patch of Package gnome-power-manager
diff --git a/data/org.gnome.power-manager.gschema.migrate b/data/org.gnome.power-manager.gschema.migrate index 4365245..4209855 100644 --- a/data/org.gnome.power-manager.gschema.migrate +++ b/data/org.gnome.power-manager.gschema.migrate @@ -20,6 +20,7 @@ notify-fully-charged = /apps/gnome-power-manager/notify/fully_charged notify-sleep-failed = /apps/gnome-power-manager/notify/sleep_failed notify-sleep-failed-uri = /apps/gnome-power-manager/notify/sleep_failed_uri notify-low-power-system = /apps/gnome-power-manager/notify/low_power +notify-idle-sleep = /apps/gnome-power-manager/notify/idle_sleep info-history-graph-points = /apps/gnome-power-manager/statistics/show_events info-history-graph-smooth = /apps/gnome-power-manager/statistics/smooth_data info-history-type = /apps/gnome-power-manager/statistics/graph_type diff --git a/data/org.gnome.power-manager.gschema.xml.in b/data/org.gnome.power-manager.gschema.xml.in index 8611416..e4cebba 100644 --- a/data/org.gnome.power-manager.gschema.xml.in +++ b/data/org.gnome.power-manager.gschema.xml.in @@ -142,6 +142,11 @@ <_summary>Notify on a low power</_summary> <_description>If a notification message should be displayed when battery in a device attached to the computer is getting low.</_description> </key> + <key name="notify-idle-sleep" type="b"> + <default>false</default> + <_summary>If an information message should be displayed when returning from idle sleep.</_summary> + <_description>If an information message should be displayed when returning from idle sleep.</_description> + </key> <key name="info-history-graph-points" type="b"> <default>true</default> <_summary>Whether we should show the history data points</_summary> diff --git a/src/gpm-common.h b/src/gpm-common.h index dabda1a..ab5e1b8 100644 --- a/src/gpm-common.h +++ b/src/gpm-common.h @@ -95,6 +95,7 @@ G_BEGIN_DECLS #define GPM_SETTINGS_NOTIFY_SLEEP_FAILED_URI "notify-sleep-failed-uri" #define GPM_SETTINGS_NOTIFY_LOW_POWER_SYSTEM "notify-low-power-system" #define GPM_SETTINGS_NOTIFY_LOW_POWER_DEVICE "notify-low-power-device" +#define GPM_SETTINGS_NOTIFY_IDLE_SLEEP "notify-idle-sleep" /* thresholds */ #define GPM_SETTINGS_PERCENTAGE_LOW "percentage-low" diff --git a/src/gpm-manager.c b/src/gpm-manager.c index 9bb0591..3572c13 100644 --- a/src/gpm-manager.c +++ b/src/gpm-manager.c @@ -114,6 +114,7 @@ struct GpmManagerPrivate GDBusConnection *bus_connection; guint bus_owner_id; guint bus_object_id; + gboolean idle_sleep; }; typedef enum { @@ -788,6 +789,31 @@ gpm_manager_perform_policy (GpmManager *manager, const gchar *policy_key, const } /** + * gpm_manager_notify_idle_sleep: + * @manager: This class instance + * + * Called when we're back from suspend and the reason for suspend was a + * auto sleep due to system inactivity + **/ +static void +gpm_manager_notify_idle_sleep (GpmManager *manager) +{ + gboolean show_idle_sleep; + + /* only show this if specified in gsettings */ + show_idle_sleep = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_NOTIFY_IDLE_SLEEP); + + /* only emit if in gsettings */ + if (show_idle_sleep) + gpm_manager_notify (manager, &manager->priv->notification_general, + _("System resumed from sleep"), + _("The system automatically went to sleep because the system was idle."), + GPM_MANAGER_NOTIFY_TIMEOUT_SHORT, + GTK_STOCK_DIALOG_INFO, + NOTIFY_URGENCY_NORMAL); +} + +/** * gpm_manager_idle_do_sleep: * @manager: This class instance * @@ -811,6 +837,7 @@ gpm_manager_idle_do_sleep (GpmManager *manager) } else if (policy == GPM_ACTION_POLICY_SUSPEND) { g_debug ("suspending, reason: System idle"); + manager->priv->idle_sleep = TRUE; ret = gpm_control_suspend (manager->priv->control, &error); if (!ret) { g_warning ("cannot suspend (error: %s), so trying hibernate", error->message); @@ -820,11 +847,13 @@ gpm_manager_idle_do_sleep (GpmManager *manager) if (!ret) { g_warning ("cannot suspend or hibernate: %s", error->message); g_error_free (error); + manager->priv->idle_sleep = FALSE; } } } else if (policy == GPM_ACTION_POLICY_HIBERNATE) { g_debug ("hibernating, reason: System idle"); + manager->priv->idle_sleep = TRUE; ret = gpm_control_hibernate (manager->priv->control, &error); if (!ret) { g_warning ("cannot hibernate (error: %s), so trying suspend", error->message); @@ -834,6 +863,7 @@ gpm_manager_idle_do_sleep (GpmManager *manager) if (!ret) { g_warning ("cannot suspend or hibernate: %s", error->message); g_error_free (error); + manager->priv->idle_sleep = FALSE; } } } @@ -2003,6 +2033,12 @@ gpm_manager_reset_just_resumed_cb (gpointer user_data) gpm_manager_notify_close (manager, manager->priv->notification_fully_charged); manager->priv->just_resumed = FALSE; + + if (manager->priv->idle_sleep) { + gpm_manager_notify_idle_sleep (manager); + manager->priv->idle_sleep = FALSE; + } + return FALSE; } @@ -2266,6 +2302,8 @@ gpm_manager_init (GpmManager *manager) /* init to not just_resumed */ manager->priv->just_resumed = FALSE; + manager->priv->idle_sleep = FALSE; + /* don't apply policy when not active, so listen to ConsoleKit */ manager->priv->console = egg_console_kit_new ();
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor