shell: Don't leak weston_touch_move_grab structs

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
diff --git a/src/shell.c b/src/shell.c
index a5e653e..badfd0c 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -1130,12 +1130,14 @@
 static void
 touch_move_grab_up(struct weston_touch_grab *grab, uint32_t time, int touch_id)
 {
-	struct shell_touch_grab *shell_grab = container_of(grab, 
-							   struct shell_touch_grab,
-							   grab);
+	struct weston_touch_move_grab *move =
+		(struct weston_touch_move_grab *) container_of(
+			grab, struct shell_touch_grab, grab);
 
-	if (grab->touch->seat->num_tp == 0)
-		shell_touch_grab_end(shell_grab);
+	if (grab->touch->seat->num_tp == 0) {
+		shell_touch_grab_end(&move->base);
+		free(move);
+	}
 }
 
 static void