summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2021-04-02 13:10:19 +0200
committerBastien Nocera <hadess@hadess.net>2021-04-22 12:39:22 +0200
commit51295bcc5015d7cbc40c2c699de0e4315d9f0bb7 (patch)
tree78681dba911d6e9a54eecb1fb835e4874d9b9a63
parent370f801c1e12a100e503ea0a4914974c341354ee (diff)
downloadgnome-control-center-wip/hadess/degraded-power-profile.tar.gz
power: Handle new power-profiles-daemon APIwip/hadess/degraded-power-profile
Handle the new PerformanceDegraded property to replace PerformanceInhibited.
-rw-r--r--panels/power/cc-power-panel.c36
1 files changed, 31 insertions, 5 deletions
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
index 0b8226a29..7948df52b 100644
--- a/panels/power/cc-power-panel.c
+++ b/panels/power/cc-power-panel.c
@@ -135,6 +135,7 @@ struct _CcPowerPanel
guint power_profiles_prop_id;
CcPowerProfileRow *power_profiles_row[NUM_CC_POWER_PROFILES];
gboolean power_profiles_in_update;
+ gboolean has_performance_degraded;
#ifdef HAVE_NETWORK_MANAGER
NMClient *nm_client;
@@ -1369,6 +1370,18 @@ performance_profile_set_inhibited (CcPowerPanel *self,
}
static void
+performance_profile_set_degraded (CcPowerPanel *self,
+ const char *performance_degraded)
+{
+ CcPowerProfileRow *row;
+
+ row = self->power_profiles_row[CC_POWER_PROFILE_PERFORMANCE];
+ if (!row)
+ return;
+ cc_power_profile_row_set_performance_degraded (row, performance_degraded);
+}
+
+static void
power_profiles_row_activated_cb (GtkListBox *box,
GtkListBoxRow *box_row,
gpointer user_data)
@@ -1423,8 +1436,14 @@ power_profiles_properties_changed_cb (CcPowerPanel *self,
{
if (g_strcmp0 (key, "PerformanceInhibited") == 0)
{
- performance_profile_set_inhibited (self,
- g_variant_get_string (value, NULL));
+ if (!self->has_performance_degraded)
+ performance_profile_set_inhibited (self,
+ g_variant_get_string (value, NULL));
+ }
+ else if (g_strcmp0 (key, "PerformanceDegraded") == 0)
+ {
+ performance_profile_set_degraded (self,
+ g_variant_get_string (value, NULL));
}
else if (g_strcmp0 (key, "ActiveProfile") == 0)
{
@@ -1507,7 +1526,8 @@ setup_power_profiles (CcPowerPanel *self)
g_autoptr(GVariant) props = NULL;
guint i, num_children;
g_autoptr(GError) error = NULL;
- const char *performance_inhibited;
+ const char *performance_inhibited = NULL;
+ const char *performance_degraded;
const char *active_profile;
g_autoptr(GVariant) profiles = NULL;
GtkRadioButton *last_button;
@@ -1562,7 +1582,10 @@ setup_power_profiles (CcPowerPanel *self)
self->boxes_reverse = g_list_prepend (self->boxes_reverse, self->power_profile_listbox);
props = g_variant_get_child_value (variant, 0);
- performance_inhibited = variant_lookup_string (props, "PerformanceInhibited");
+ performance_degraded = variant_lookup_string (props, "PerformanceDegraded");
+ self->has_performance_degraded = performance_degraded != NULL;
+ if (performance_degraded == NULL)
+ performance_inhibited = variant_lookup_string (props, "PerformanceInhibited");
active_profile = variant_lookup_string (props, "ActiveProfile");
last_button = NULL;
@@ -1589,7 +1612,10 @@ setup_power_profiles (CcPowerPanel *self)
profile = cc_power_profile_from_str (name);
row = cc_power_profile_row_new (cc_power_profile_from_str (name));
- cc_power_profile_row_set_performance_inhibited (row, performance_inhibited);
+ if (performance_degraded)
+ cc_power_profile_row_set_performance_degraded (row, performance_degraded);
+ else
+ cc_power_profile_row_set_performance_inhibited (row, performance_inhibited);
g_signal_connect_object (G_OBJECT (row), "button-toggled",
G_CALLBACK (power_profile_button_toggled_cb), self,
0);