virtual: execute tdm_display_destroy_output when voutput destroy
[platform/core/uifw/libtdm.git] / src / tdm_server.c
index cf743fa..e540133 100644 (file)
@@ -715,6 +715,22 @@ _tdm_server_cb_create_output(struct wl_client *client, struct wl_resource *resou
 
 static void _tdm_voutput_cb_destroy(struct wl_client *client, struct wl_resource *resource)
 {
+       tdm_server_voutput_info *voutput_info;
+       tdm_private_server *private_server;
+       tdm_output *output;
+       tdm_error ret = TDM_ERROR_NONE;
+
+       voutput_info = wl_resource_get_user_data(resource);
+
+       private_server = voutput_info->private_server;
+       output = voutput_info->output;
+
+       if (output)
+               ret = tdm_display_destroy_output(private_server->private_loop->dpy, output);
+
+       if (ret != TDM_ERROR_NONE)
+               TDM_ERR("_tdm_voutput_cb_destroy fail");
+
        wl_resource_destroy(resource);
 }
 
@@ -807,6 +823,10 @@ _tdm_voutput_cb_connect(struct wl_client *client, struct wl_resource *resource)
 
        voutput_info = wl_resource_get_user_data(resource);
        voutput_info->status = TDM_OUTPUT_CONN_STATUS_CONNECTED;
+
+       tdm_output_set_physical_size(voutput_info->output, voutput_info->mmwidth, voutput_info->mmheight);
+       tdm_output_set_available_mode(voutput_info->output, voutput_info->available_modes.modes, voutput_info->available_modes.count);
+       //tdm_output_set_connect();
 }
 
 static void