package version up to 1.6.17
[platform/core/uifw/libtdm.git] / client / tdm_client.c
index 504c119..4d8ba30 100644 (file)
@@ -499,6 +499,9 @@ tdm_client_output_add_change_handler(tdm_client_output *output,
        h = calloc(1, sizeof *h);
        TDM_RETURN_VAL_IF_FAIL(h != NULL, TDM_ERROR_OUT_OF_MEMORY);
 
+       if (LIST_IS_EMPTY(&private_output->change_handler_list))
+               wl_tdm_output_watch_output_changes(private_output->output, 1);
+
        h->private_output = private_output;
        h->func = func;
        h->user_data = user_data;
@@ -526,6 +529,10 @@ tdm_client_output_remove_change_handler(tdm_client_output *output,
 
                LIST_DEL(&h->link);
                free(h);
+
+               if (LIST_IS_EMPTY(&private_output->change_handler_list))
+                       wl_tdm_output_watch_output_changes(private_output->output, 0);
+
                return;
        }
 }
@@ -689,7 +696,6 @@ tdm_client_vblank_set_fps(tdm_client_vblank *vblank, unsigned int fps)
        TDM_RETURN_VAL_IF_FAIL(fps > 0, TDM_ERROR_INVALID_PARAMETER);
 
        private_vblank = vblank;
-       TDM_RETURN_VAL_IF_FAIL(private_vblank->started == 0, TDM_ERROR_BAD_REQUEST);
 
        if (private_vblank->fps == fps)
                return TDM_ERROR_NONE;