File gnome-power-manager-bnc492757-fix-infinite-brightness-steps.patch of Package gnome-power-manager
Index: gnome-power-manager-2.24.1/src/gpm-brightness-xrandr.c
===================================================================
--- gnome-power-manager-2.24.1.orig/src/gpm-brightness-xrandr.c
+++ gnome-power-manager-2.24.1/src/gpm-brightness-xrandr.c
@@ -309,6 +309,7 @@ gpm_brightness_xrandr_output_set (GpmBri
guint min, max;
gint i;
gint shared_value_abs;
+ guint step;
g_return_val_if_fail (GPM_IS_BRIGHTNESS_XRANDR (brightness), FALSE);
@@ -336,8 +337,13 @@ gpm_brightness_xrandr_output_set (GpmBri
/* step the correct way */
if (cur < shared_value_abs) {
+
+ /* some adaptors have a large number of steps */
+ step = gpm_brightness_get_step (shared_value_abs - cur);
+ egg_debug ("using step of %i", step);
+
/* going up */
- for (i=cur; i<=shared_value_abs; i++) {
+ for (i=cur; i<=shared_value_abs; i+=step) {
ret = gpm_brightness_xrandr_output_set_internal (brightness, output, i);
if (!ret) {
break;
@@ -347,8 +353,13 @@ gpm_brightness_xrandr_output_set (GpmBri
}
}
} else {
+
+ /* some adaptors have a large number of steps */
+ step = gpm_brightness_get_step (cur - shared_value_abs);
+ egg_debug ("using step of %i", step);
+
/* going down */
- for (i=cur; i>=shared_value_abs; i--) {
+ for (i=cur; i>=shared_value_abs; i-=step) {
ret = gpm_brightness_xrandr_output_set_internal (brightness, output, i);
if (!ret) {
break;