shell/zoom: Increment/decrement disable_planes only when zoom.active changes
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 16 Nov 2012 09:48:47 +0000 (11:48 +0200)
committerKristian Høgsberg <krh@bitplanet.net>
Sat, 17 Nov 2012 00:25:42 +0000 (19:25 -0500)
disable_planes should only be incremented when zoom.active actually
toggles. Otherwise the counter will be incremented too many times,
and planes will no longer get used.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
src/shell.c
src/zoom.c

index d4662ef..012c2ac 100644 (file)
@@ -2439,7 +2439,7 @@ do_zoom(struct wl_seat *seat, uint32_t time, uint32_t key, uint32_t axis,
                                output->zoom.level = 0.0;
                        else if (output->zoom.level > output->zoom.max_level)
                                output->zoom.level = output->zoom.max_level;
-                       else {
+                       else if (!output->zoom.active) {
                                output->zoom.active = 1;
                                output->disable_planes++;
                        }
index 674a80e..3be27f6 100644 (file)
@@ -123,7 +123,7 @@ weston_zoom_frame_z(struct weston_animation *animation,
                output->zoom.spring_z.current = 0.0;
 
        if (weston_spring_done(&output->zoom.spring_z)) {
-               if (output->zoom.level <= 0.0) {
+               if (output->zoom.active && output->zoom.level <= 0.0) {
                        output->zoom.active = 0;
                        output->disable_planes--;
                }