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;
openSUSE Build Service is sponsored by