commit 0c07f52289f17cc9e9d071e678be411613d0d6b8 Author: Carl Simonson Date: Thu Jun 5 20:52:15 2014 -0500 Use a reasonable step value for keyboard brightness Some keyboard brightness controllers have different ranges for levels. Some have a few discreet values. Others are more like a percent. This change uses a step based on the maximum level. If less than 20, use 1. Else, divide by 20. This logic is the same as used in gnome-settings-daemon. It comes from the BRIGHTNESS_STEP_AMOUND macro in plugins/power/gpm-common.h. diff --git a/src/xfpm-kbd-backlight.c b/src/xfpm-kbd-backlight.c index d37a8b4..a55aeec 100644 --- a/src/xfpm-kbd-backlight.c +++ b/src/xfpm-kbd-backlight.c @@ -60,6 +60,16 @@ struct XfpmKbdBacklightPrivate G_DEFINE_TYPE (XfpmKbdBacklight, xfpm_kbd_backlight, G_TYPE_OBJECT) +static gint +calculate_step( gint max_level ) +{ + if ( max_level < 20 ) + return 1; + else + return max_level / 20; +} + + static void xfpm_kbd_backlight_on_battery_changed_cb (XfpmPower *power, gboolean on_battery, XfpmKbdBacklight *backlight) { @@ -265,7 +275,7 @@ xfpm_kbd_backlight_init (XfpmKbdBacklight *backlight) if ( backlight->priv->max_level == 0 ) goto out; - backlight->priv->step = backlight->priv->max_level / 5; + backlight->priv->step = calculate_step (backlight->priv->max_level); backlight->priv->power = xfpm_power_get (); backlight->priv->button = xfpm_button_new (); backlight->priv->notify = xfpm_notify_new ();