From f5ddd697f1d6e599b0b48a5e17757d312cca76ed Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Thu, 22 Oct 2020 12:38:35 +1100 Subject: [PATCH] Fix conversation screen scrolling issue --- .../ConversationView/Cells/OWSMessageCell.m | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageCell.m b/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageCell.m index 1c05c848c..91594fc03 100644 --- a/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageCell.m +++ b/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageCell.m @@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface OWSMessageCell () +@interface OWSMessageCell () // The nullable properties are created as needed. // The non-nullable properties are so frequently used that it's easier @@ -81,6 +81,7 @@ NS_ASSUME_NONNULL_BEGIN UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)]; + pan.delegate = self; [self.contentView addGestureRecognizer:pan]; } @@ -497,6 +498,17 @@ NS_ASSUME_NONNULL_BEGIN [self.messageBubbleView handlePanGesture:sender]; } +-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer +{ + LKVoiceMessageView *voiceMessageView = self.viewItem.lastAudioMessageView; + if (![gestureRecognizer isKindOfClass:UIPanGestureRecognizer.class] || voiceMessageView == nil) { return NO; } + UIPanGestureRecognizer *panGestureRecognizer = (UIPanGestureRecognizer *)gestureRecognizer; + CGPoint location = [panGestureRecognizer locationInView:voiceMessageView]; + if (!CGRectContainsPoint(voiceMessageView.bounds, location)) { return NO; } + CGPoint velocity = [panGestureRecognizer velocityInView:voiceMessageView]; + return fabs(velocity.x) > fabs(velocity.y); +} + - (BOOL)isGestureInCellHeader:(UIGestureRecognizer *)sender { OWSAssertDebug(self.viewItem);