diff options
author | Benjamin Berg <bberg@redhat.com> | 2019-08-23 15:23:44 +0200 |
---|---|---|
committer | Benjamin Berg <bberg@redhat.com> | 2019-08-23 15:23:44 +0200 |
commit | 35ed3aa8d8d18ad6f088f2855a37e47ed5e50e8f (patch) | |
tree | e8f4bca447f04a0671464fee675023edaba4b625 | |
parent | beabc473cc1e7e4a07263267d12dcab56b433c3b (diff) | |
download | gnome-settings-daemon-35ed3aa8d8d18ad6f088f2855a37e47ed5e50e8f.tar.gz |
power: Fix rounding of brightness value
We rounded properly for percentage to absolute value, but we always
floored the other way around. Also round when converting the absolute
value to percentage, this should prevent issues where the percentage
changes becaues the calculated absolute value will be resolved to a
different percentage than it was calculated from.
-rw-r--r-- | plugins/power/gpm-common.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/plugins/power/gpm-common.c b/plugins/power/gpm-common.c index 0934a205..c2e521f5 100644 --- a/plugins/power/gpm-common.c +++ b/plugins/power/gpm-common.c @@ -47,10 +47,15 @@ int gsd_power_backlight_abs_to_percentage (int min, int max, int value) { + int steps; + g_return_val_if_fail (max > min, -1); g_return_val_if_fail (value >= min, -1); g_return_val_if_fail (value <= max, -1); - return (((value - min) * 100) / (max - min)); + + steps = max - min; + + return (((value - min) * 100 + steps / 2) / steps); } /* take a percentage and convert to a discrete value with offset */ |