voutput_info->mmwidth = 0;
voutput_info->mmheight = 0;
+ if (voutput_info->request_commit == 1) {
+ tdm_output_unset_voutput_commit(voutput_info->voutput);
+ voutput_info->request_commit = 0;
+ }
+
if (voutput_info->attach_buffer) {
tbm_surface_h buffer = voutput_info->attach_buffer->buffer;
tbm_surface_internal_unref(buffer);
voutput_info->committing = 0;
voutput_info->attach_buffer = NULL;
- }
-
- if (voutput_info->request_commit == 1) {
- tdm_output_unset_voutput_commit(voutput_info->voutput);
- voutput_info->request_commit = 0;
+ tdm_voutput_commit_done(voutput_info->voutput);
}
tdm_voutput_disconnect(voutput_info->voutput);
LIST_FOR_EACH_ENTRY(vb, &voutput_info->buffer_list, link) {
if (vb && vb->buffer == buffer) {
- tbm_surface_internal_ref(vb->buffer);
return vb;
}
}
voutput_info->attach_buffer = voutput_buffer;
+ tbm_surface_internal_ref(buffer);
wl_tdm_voutput_send_attach_buffer(voutput_info->resource, voutput_buffer->wl_buffer);
return TDM_ERROR_NONE;