shell: Tweak spring animation for zoom animation type
diff --git a/src/animation.c b/src/animation.c
index a93d26e..0b2fa95 100644
--- a/src/animation.c
+++ b/src/animation.c
@@ -239,8 +239,16 @@
 weston_zoom_run(struct weston_surface *surface, float start, float stop,
 		weston_surface_animation_done_func_t done, void *data)
 {
-	return weston_surface_animation_run(surface, start, stop,
+	struct weston_surface_animation *zoom;
+
+	zoom = weston_surface_animation_run(surface, start, stop,
 					    zoom_frame, done, data);
+
+	weston_spring_init(&zoom->spring, 300.0, start, stop);
+	zoom->spring.friction = 1400;
+	zoom->spring.previous = start - (stop - start) * 0.03;
+
+	return zoom;
 }
 
 static void
diff --git a/src/shell.c b/src/shell.c
index 1522e99..ceb963c 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -3459,7 +3459,7 @@
 			weston_fade_run(surface, 0.0, 1.0, 300.0, NULL, NULL);
 			break;
 		case ANIMATION_ZOOM:
-			weston_zoom_run(surface, 0.8, 1.0, NULL, NULL);
+			weston_zoom_run(surface, 0.5, 1.0, NULL, NULL);
 			break;
 		default:
 			break;
diff --git a/src/spring-tool.c b/src/spring-tool.c
index f2be784..ba01477 100644
--- a/src/spring-tool.c
+++ b/src/spring-tool.c
@@ -42,7 +42,7 @@
 main(int argc, char *argv[])
 {
 	const double k = 300.0;
-	const double current = 0.0;
+	const double current = 0.5;
 	const double target = 1.0;
 	const double friction = 1400;
 
@@ -51,7 +51,7 @@
 
 	weston_spring_init(&spring, k, current, target);
 	spring.friction = friction;
-	spring.previous = -0.03;
+	spring.previous = 0.48;
 	spring.timestamp = 0;
 
 	while (!weston_spring_done(&spring)) {