compositor: make surface_configure() a vfunc
This allows us to move the logic that calls shell->map() or
shell->configure() into shell while allowing it to be overriden for
surfaces that should not be handle by the shell, such as drag icons.
This patch adds a pointer function called configure to weston_surface,
moves the currsent surface_configure() code into shell and implements
a separate configure() for drag surfaces.
diff --git a/src/compositor.h b/src/compositor.h
index d76e99d..65aa48f 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -335,6 +335,12 @@
struct wl_buffer *buffer;
struct wl_listener buffer_destroy_listener;
+ /*
+ * If non-NULL, this function will be called on surface::attach after
+ * a new buffer has been set up for this surface. The integer params
+ * are the sx and sy paramerters supplied to surface::attach .
+ */
+ void (*configure)(struct weston_surface *es, int32_t sx, int32_t sy);
int force_configure;
};