surface: Don't calculate geometry for buffer-less subsurfaces

A wl_surface may have a wl_subsurface interface, but no buffers attached
yet, even though the geometry calculation code for surfaces/subsurfaces
assumes everything has already a buffer.

Just skip subsurfaces that don't have a buffer, those can't be set
a geometry yet, and right now it's crashing accessing the texture from
the NULL surface->buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=735452
This commit is contained in:
Carlos Garnacho 2014-08-26 16:12:38 +02:00
parent f9818f890b
commit e822e51752

View File

@ -187,6 +187,9 @@ calculate_surface_window_geometry (MetaWaylandSurface *surface,
if (!CLUTTER_ACTOR_IS_VISIBLE (surface_actor))
return;
if (!surface->buffer)
return;
/* XXX: Is there a better way to do this using Clutter APIs? */
clutter_actor_get_position (surface_actor, &x, &y);