diff --git a/src/shell.c b/src/shell.c index cccfe66e..6bd89ec1 100644 --- a/src/shell.c +++ b/src/shell.c @@ -2438,7 +2438,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++; } diff --git a/src/zoom.c b/src/zoom.c index 674a80ea..3be27f61 100644 --- a/src/zoom.c +++ b/src/zoom.c @@ -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--; }