toytoolkit: match parent surface type when adding a subsurface

When adding a subsurface (to display a tooltip) in toytoolkit,
we now get the parent window surface type (SHM or EGL) and
define the new surface type as the same.

This fixes crashes with tooltips in cases like having
Cairo-EGL available but running the X11 compositor.

Signed-off-by: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Manuel Bachmann 2014-04-04 10:04:18 +02:00 committed by Kristian Høgsberg
parent 27efc06530
commit cd186fbfaf
2 changed files with 10 additions and 0 deletions

View file

@ -4610,6 +4610,12 @@ window_set_buffer_type(struct window *window, enum window_buffer_type type)
window->main_surface->buffer_type = type;
}
enum window_buffer_type
window_get_buffer_type(struct window *window)
{
return window->main_surface->buffer_type;
}
void
window_set_preferred_format(struct window *window,
enum preferred_format format)
@ -4627,6 +4633,7 @@ window_add_subsurface(struct window *window, void *data,
struct wl_subcompositor *subcompo = window->display->subcompositor;
surface = surface_create(window);
surface->buffer_type = window_get_buffer_type(window);
widget = widget_create(window, surface, data);
wl_list_init(&widget->link);
surface->widget = widget;

View file

@ -364,6 +364,9 @@ display_surface_damage(struct display *display, cairo_surface_t *cairo_surface,
void
window_set_buffer_type(struct window *window, enum window_buffer_type type);
enum window_buffer_type
window_get_buffer_type(struct window *window);
int
window_is_fullscreen(struct window *window);