From ddfacc6b81bbcedec1f2d2e7339c41388d4b4bb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Correa=20G=C3=B3mez?= Date: Mon, 7 Mar 2022 22:16:51 +0100 Subject: [PATCH] power: Only update ALS state if it has changed Ambient light sensors can be quite sensitive and the LightLevel property might be changing very often. That has two undesired consequences: * The `als_enabled_state_changed` callback gets constantly called due to a change in a property which it does not care about, as only `HasAmbientLight` is relevant. Therefore, limit the code execution to when something needs to be changed. * During debugging, the terminal gets spammed with "ALS enabled: on/off" messages. --- panels/power/cc-power-panel.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c index 09735a922f..0a988b5d43 100644 --- a/panels/power/cc-power-panel.c +++ b/panels/power/cc-power-panel.c @@ -347,6 +347,9 @@ als_enabled_state_changed (CcPowerPanel *self) visible = g_variant_get_boolean (v); } + if (gtk_widget_get_visible (GTK_WIDGET (self->als_row)) == visible) + return; + enabled = g_settings_get_boolean (self->gsd_settings, "ambient-enabled"); g_debug ("ALS enabled: %s", enabled ? "on" : "off"); g_signal_handlers_block_by_func (self->als_switch, als_switch_changed_cb, self); -- GitLab