diff options
| -rw-r--r-- | src/sbmanager.c | 76 | 
1 files changed, 12 insertions, 64 deletions
diff --git a/src/sbmanager.c b/src/sbmanager.c index 983db3d..8220e89 100644 --- a/src/sbmanager.c +++ b/src/sbmanager.c @@ -460,16 +460,13 @@ static void dock_align_icons(gboolean animated)      gfloat ypos = 8.0;      gfloat xpos = 0.0;      gint i = 0; -    SBItem *sel_item = NULL;      if (count > 4) {  	spacing = 3.0;      }      gfloat totalwidth = count*60.0 + spacing*(count-1);      xpos = (STAGE_WIDTH - totalwidth)/2.0; -    /* 1. store the current icon positions (except the selected one) */ -    gfloat *x_pos = g_new0(gfloat, count); -    ClutterActor **actors = g_new0(ClutterActor*, count); +    /* set positions */      for (i = 0; i < count; i++) {  	SBItem *item = g_list_nth_data(dockitems, i);  	ClutterActor *icon = clutter_actor_get_parent(item->texture); @@ -477,12 +474,12 @@ static void dock_align_icons(gboolean animated)  	    continue;  	} -	x_pos[i] = xpos; -  	if (item != selected_item) { -	    actors[i] = icon; -	} else { -	    sel_item = item; +	    if (animated) { +		clutter_actor_animate(icon, CLUTTER_EASE_OUT_QUAD, 250, "x", xpos, "y", ypos, NULL); +	    } else { +		clutter_actor_set_position(icon, xpos, ypos); +	    }  	}  	xpos += 60; @@ -490,27 +487,6 @@ static void dock_align_icons(gboolean animated)  	    xpos += spacing;  	}      } - -    if (sel_item && selected_item) { -	/* perform position calculation */ -    	gfloat cx = 0.0; -    	gfloat cy = 0.0; -	actor_get_abs_center(clutter_actor_get_parent(selected_item->texture), &cx, &cy); -    } - -    /* finally, set the positions */ -    for (i = 0; i < count; i++) { -	if (actors[i]) { -	    xpos = x_pos[i]; -	    if (animated) { -		clutter_actor_animate(actors[i], CLUTTER_EASE_OUT_QUAD, 250, "x", xpos, "y", ypos, NULL); -	    } else { -		clutter_actor_set_position(actors[i], xpos, ypos); -	    } -	} -    } -    g_free(x_pos); -    g_free(actors);  }  static void sb_align_icons(guint page_num, gboolean animated) @@ -530,12 +506,8 @@ static void sb_align_icons(guint page_num, gboolean animated)      gfloat ypos = 16.0;      gfloat xpos = 16.0 + (page_num * STAGE_WIDTH);      gint i = 0; -    SBItem *sel_item = NULL; -    /* store the current icon positions (except the selected one) */ -    gfloat *x_pos = g_new0(gfloat, count); -    gfloat *y_pos = g_new0(gfloat, count); -    ClutterActor **actors = g_new0(ClutterActor*, count); +    /* set positions */      for (i = 0; i < count; i++) {  	SBItem *item = g_list_nth_data(pageitems, i);  	if (!item) { @@ -551,13 +523,12 @@ static void sb_align_icons(guint page_num, gboolean animated)  	    continue;  	} -	x_pos[i] = xpos; -	y_pos[i] = ypos; -  	if (item != selected_item) { -	    actors[i] = icon; -	} else { -	    sel_item = item; +	    if (animated) { +		clutter_actor_animate(icon, CLUTTER_EASE_OUT_QUAD, 250, "x", xpos, "y", ypos, NULL); +	    } else { +		clutter_actor_set_position(icon, xpos, ypos); +	    }  	}      	if (((i+1) % 4) == 0) { @@ -569,29 +540,6 @@ static void sb_align_icons(guint page_num, gboolean animated)      	    xpos += 76;      	}      } - -    if (sel_item && selected_item) { -	/* perform position calculation */ -    	gfloat cx = 0.0; -    	gfloat cy = 0.0; -	actor_get_abs_center(clutter_actor_get_parent(selected_item->texture), &cx, &cy); -    } - -    /* finally, set the positions */ -    for (i = 0; i < count; i++) { -	if (actors[i]) { -	    xpos = x_pos[i]; -	    ypos = y_pos[i]; -	    if (animated) { -		clutter_actor_animate(actors[i], CLUTTER_EASE_OUT_QUAD, 250, "x", xpos, "y", ypos, NULL); -	    } else { -		clutter_actor_set_position(actors[i], xpos, ypos); -	    } -	} -    } -    g_free(actors); -    g_free(y_pos); -    g_free(x_pos);  }  static void redraw_icons()  | 
