Introduce output zoom.
Ideally, we would want to use <modifier>+Scroll binding but that will have
to wait for axis events. For now we just use keybindings. Zoom in/out with
Super+Up/Down.
diff --git a/src/compositor.h b/src/compositor.h
index ac87f89..1888ea6 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -54,6 +54,14 @@
int32_t left, right, top, bottom;
};
+struct weston_output_zoom {
+ int active;
+ float increment;
+ float level;
+ float magnification;
+ float trans_x, trans_y;
+};
+
struct weston_output {
struct wl_list link;
struct weston_compositor *compositor;
@@ -66,6 +74,8 @@
uint32_t flags;
int repaint_needed;
int repaint_scheduled;
+ struct weston_output_zoom zoom;
+ int dirty;
char *make, *model;
uint32_t subpixel;
@@ -420,6 +430,10 @@
void
weston_compositor_shutdown(struct weston_compositor *ec);
void
+weston_output_update_zoom(struct weston_output *output, int x, int y);
+void
+weston_output_update_matrix(struct weston_output *output);
+void
weston_output_move(struct weston_output *output, int x, int y);
void
weston_output_init(struct weston_output *output, struct weston_compositor *c,