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