struct widget {
struct window *window;
+ struct surface *surface;
struct tooltip *tooltip;
struct wl_list child_list;
struct wl_list link;
}
static struct widget *
-widget_create(struct window *window, void *data)
+widget_create(struct window *window, struct surface *surface, void *data)
{
struct widget *widget;
widget = malloc(sizeof *widget);
memset(widget, 0, sizeof *widget);
widget->window = window;
+ widget->surface = surface;
widget->user_data = data;
- widget->allocation = window->main_surface->allocation;
+ widget->allocation = surface->allocation;
wl_list_init(&widget->child_list);
widget->opaque = 0;
widget->tooltip = NULL;
{
struct widget *widget;
- widget = widget_create(window, data);
+ widget = widget_create(window, window->main_surface, data);
wl_list_init(&widget->link);
window->main_surface->widget = widget;
{
struct widget *widget;
- widget = widget_create(parent->window, data);
+ widget = widget_create(parent->window, parent->surface, data);
wl_list_insert(parent->child_list.prev, &widget->link);
return widget;
struct widget *child = frame->child;
struct rectangle allocation;
struct display *display = widget->window->display;
- struct surface *surface = widget->window->main_surface;
+ struct surface *surface = widget->surface;
struct frame_button * button;
struct theme *t = display->theme;
int x_l, x_r, y, w, h;