The subsurface patches changed the center_on_output() behavior a bit.
Instead of using the buffer width and height, it now looks at surface
geometry. In lock_surface_configure() we haven't set up the geometry
when we call center_on_output() so the lock surface would never show
up.
if (width == 0)
return;
+ surface->geometry.width = width;
+ surface->geometry.height = height;
center_on_output(surface, get_default_output(shell->compositor));
if (!weston_surface_is_mapped(surface)) {