This seems to work correctly, though we segfault in the compositor when our surface goes away.
cc @lubosz @wallbraker