compositor-drm: Add key binding for hidding overlays

Pressing ctrl-alt-o will cause the overlays to be hidden, but surfaces
will still be assigned to different planes. This helps with debugging
of repaint culling below surfaces in other planes.
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 1133281..fac0f56 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -97,6 +97,7 @@
 
 	struct wl_list sprite_list;
 	int sprites_are_broken;
+	int sprites_hidden;
 
 	int cursors_are_broken;
 
@@ -396,7 +397,10 @@
 			continue;
 
 		ret = drmModeSetPlane(compositor->drm.fd, s->plane_id,
-				      output->crtc_id, s->pending_fb_id, flags,
+				      output->crtc_id,
+				      compositor->sprites_hidden ?
+				      0 : s->pending_fb_id,
+				      flags,
 				      s->dest_x, s->dest_y,
 				      s->dest_w, s->dest_h,
 				      s->src_x, s->src_y,
@@ -2220,6 +2224,15 @@
 	return drm_device;
 }
 
+static void
+hide_sprites_binding(struct wl_seat *seat, uint32_t time, uint32_t key,
+		     void *data)
+{
+	struct drm_compositor *c = data;
+
+	c->sprites_hidden ^= 1;
+}
+
 static struct weston_compositor *
 drm_compositor_create(struct wl_display *display,
 		      int connector, const char *seat, int tty,
@@ -2321,6 +2334,10 @@
 
 	udev_device_unref(drm_device);
 
+	weston_compositor_add_key_binding(&ec->base, KEY_O,
+					  MODIFIER_CTRL | MODIFIER_ALT,
+					  hide_sprites_binding, ec);
+
 	return &ec->base;
 
 err_udev_monitor: