cairo_surface_t **pointer_surfaces;
display_drag_offer_handler_t drag_offer_handler;
+ display_global_handler_t global_handler;
};
struct window {
offer = wl_drag_offer_create(display, id);
d->drag_offer_handler(offer, d);
}
+ } else if (d->global_handler) {
+ d->global_handler(d, interface, version);
}
}
{
display->drag_offer_handler = handler;
}
+
+void
+display_set_global_handler(struct display *display,
+ display_global_handler_t handler)
+{
+ display->global_handler = handler;
+}
typedef void (*display_drag_offer_handler_t)(struct wl_drag_offer *offer,
struct display *display);
+typedef void (*display_global_handler_t)(struct display *display,
+ const char *interface,
+ uint32_t version);
+
struct window *
window_create(struct display *display, const char *title,
int32_t width, int32_t height);
display_set_drag_offer_handler(struct display *display,
display_drag_offer_handler_t handler);
+void
+display_set_global_handler(struct display *display,
+ display_global_handler_t handler);
+
struct wl_drag *
window_create_drag(struct window *window);