diff options
author | Bastien Nocera <hadess@hadess.net> | 2021-04-02 13:10:19 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2021-04-22 12:39:22 +0200 |
commit | 51295bcc5015d7cbc40c2c699de0e4315d9f0bb7 (patch) | |
tree | 78681dba911d6e9a54eecb1fb835e4874d9b9a63 | |
parent | 370f801c1e12a100e503ea0a4914974c341354ee (diff) | |
download | gnome-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.c | 36 |
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); |