zoom: Call weston_output_activate_zoom() appropriately

No longer call weston_output_update_zoom() when trying to zoom out
on an unzoomed output.

Add an assert() to make sure update_zoom is never called without an
active zoom.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
dev
Derek Foreman 10 years ago committed by Bryce Harrington
parent 859b52b62e
commit 25bd8a71fc
  1. 5
      desktop-shell/shell.c
  2. 3
      src/zoom.c

@ -4804,7 +4804,10 @@ do_zoom(struct weston_seat *seat, uint32_t time, uint32_t key, uint32_t axis,
output->zoom.level = 0.0; output->zoom.level = 0.0;
else if (output->zoom.level > output->zoom.max_level) else if (output->zoom.level > output->zoom.max_level)
output->zoom.level = output->zoom.max_level; output->zoom.level = output->zoom.max_level;
else if (!output->zoom.active) {
if (!output->zoom.active) {
if (output->zoom.level <= 0.0)
continue;
weston_output_activate_zoom(output); weston_output_activate_zoom(output);
} }

@ -25,6 +25,7 @@
#include "config.h" #include "config.h"
#include <assert.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdbool.h> #include <stdbool.h>
@ -135,6 +136,8 @@ weston_output_update_zoom(struct weston_output *output)
{ {
struct weston_seat *seat = weston_zoom_pick_seat(output->compositor); struct weston_seat *seat = weston_zoom_pick_seat(output->compositor);
assert(output->zoom.active);
output->zoom.current.x = seat->pointer->x; output->zoom.current.x = seat->pointer->x;
output->zoom.current.y = seat->pointer->y; output->zoom.current.y = seat->pointer->y;

Loading…
Cancel
Save