Transitions are only atomically set during commit_changes.
Therefore, it should not be possible to set same type of
transition to same surface/layer more than once.

Signed-off-by: Emre Ucan <[email protected]>
---
 ivi-shell/ivi-layout-transition.c | 74 +++++----------------------------------
 1 file changed, 9 insertions(+), 65 deletions(-)

diff --git a/ivi-shell/ivi-layout-transition.c 
b/ivi-shell/ivi-layout-transition.c
index cb11a01..13c35f1 100644
--- a/ivi-shell/ivi-layout-transition.c
+++ b/ivi-shell/ivi-layout-transition.c
@@ -416,22 +416,7 @@ ivi_layout_transition_move_resize_view(struct 
ivi_layout_surface *surface,
        transition = get_transition_from_type_and_id(
                                        IVI_LAYOUT_TRANSITION_VIEW_MOVE_RESIZE,
                                        surface);
-       if (transition) {
-               struct move_resize_view_data *data = transition->private_data;
-               transition->time_start = 0;
-               transition->time_duration = duration;
-
-               data->start_x = start_pos[0];
-               data->start_y = start_pos[1];
-               data->end_x   = dest_x;
-               data->end_y   = dest_y;
-
-               data->start_width  = start_size[0];
-               data->start_height = start_size[1];
-               data->end_width    = dest_width;
-               data->end_height   = dest_height;
-               return;
-       }
+       assert(!transition);
 
        transition = create_move_resize_view_transition(
                surface,
@@ -567,25 +552,11 @@ ivi_layout_transition_visibility_on(struct 
ivi_layout_surface *surface,
        bool is_visible = surface->prop.visibility;
        wl_fixed_t dest_alpha = surface->prop.opacity;
        struct store_alpha *user_data = NULL;
-       wl_fixed_t start_alpha = 0.0;
-       struct fade_view_data *data = NULL;
 
        transition = get_transition_from_type_and_id(
                                        IVI_LAYOUT_TRANSITION_VIEW_FADE,
                                        surface);
-       if (transition) {
-               start_alpha = surface->prop.opacity;
-               user_data = transition->user_data;
-               data = transition->private_data;
-
-               transition->time_start = 0;
-               transition->time_duration = duration;
-               transition->destroy_func = visibility_on_transition_destroy;
-
-               data->start_alpha = wl_fixed_to_double(start_alpha);
-               data->end_alpha = user_data->alpha;
-               return;
-       }
+       assert(!transition);
 
        if (is_visible)
                return;
@@ -631,22 +602,11 @@ ivi_layout_transition_visibility_off(struct 
ivi_layout_surface *surface,
        struct ivi_layout_transition *transition;
        wl_fixed_t start_alpha = surface->prop.opacity;
        struct store_alpha* user_data = NULL;
-       struct fade_view_data* data = NULL;
 
        transition =
                get_transition_from_type_and_id(IVI_LAYOUT_TRANSITION_VIEW_FADE,
                                                surface);
-       if (transition) {
-               data = transition->private_data;
-
-               transition->time_start = 0;
-               transition->time_duration = duration;
-               transition->destroy_func = visibility_off_transition_destroy;
-
-               data->start_alpha = wl_fixed_to_double(start_alpha);
-               data->end_alpha = 0;
-               return;
-       }
+       assert(!transition);
 
        user_data = malloc(sizeof(*user_data));
        if (user_data == NULL) {
@@ -766,6 +726,11 @@ ivi_layout_transition_move_layer(struct ivi_layout_layer 
*layer,
        int32_t start_pos_y = layer->prop.dest_y;
        struct ivi_layout_transition *transition = NULL;
 
+       transition = get_transition_from_type_and_id(
+                                       IVI_LAYOUT_TRANSITION_LAYER_MOVE,
+                                       layer);
+       assert(!transition);
+
        transition = create_move_layer_transition(
                layer,
                start_pos_x, start_pos_y,
@@ -843,32 +808,11 @@ ivi_layout_transition_fade_layer(
 {
        struct ivi_layout_transition *transition;
        struct fade_layer_data *data;
-       wl_fixed_t fixed_opacity;
-       double now_opacity;
-       double remain;
 
        transition = get_transition_from_type_and_id(
                                        IVI_LAYOUT_TRANSITION_LAYER_FADE,
                                        layer);
-       if (transition) {
-               /* transition update */
-               data = transition->private_data;
-
-               /* FIXME */
-               fixed_opacity = layer->prop.opacity;
-               now_opacity = wl_fixed_to_double(fixed_opacity);
-
-               data->is_fade_in = is_fade_in;
-               data->start_alpha = now_opacity;
-               data->end_alpha = end_alpha;
-
-               remain = is_fade_in? 1.0 - now_opacity : now_opacity;
-               transition->time_start = 0;
-               transition->time_elapsed = 0;
-               transition->time_duration = duration * remain;
-
-               return;
-       }
+       assert(!transition);
 
        transition = create_layout_transition();
        if (transition == NULL)
-- 
2.7.4

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to