Merge pull request #2471 from vector-im/fix_show_context_menu_interaction_when_animate

RoomVC: Prevent user interaction in timeline while presenting context menu
This commit is contained in:
SBiOSoftWhare
2019-06-18 11:49:44 +02:00
committed by GitHub
+7 -6
View File
@@ -5165,12 +5165,13 @@
RoomContextualMenuViewController *roomContextualMenuViewController = [RoomContextualMenuViewController instantiateWith:contextualMenuItems];
roomContextualMenuViewController.delegate = self;
[self enableOverlayContainerUserInteractions:YES];
[self.roomContextualMenuPresenter presentWithRoomContextualMenuViewController:roomContextualMenuViewController
from:self
on:self.overlayContainerView
animated:YES
completion:^{
[self contextualMenuAnimationCompletionAfterBeingShown:YES];
}];
if (RiotSettings.shared.messageReaction && [cell isKindOfClass:MXKRoomBubbleTableViewCell.class] && [self.roomDataSource canReactToEventWithId:event.eventId])
@@ -5235,7 +5236,7 @@
}
[self.roomContextualMenuPresenter hideContextualMenuWithAnimated:animated completion:^{
[self contextualMenuAnimationCompletionAfterBeingShown:NO];
[self enableOverlayContainerUserInteractions:NO];
if (completion)
{
@@ -5244,11 +5245,11 @@
}];
}
- (void)contextualMenuAnimationCompletionAfterBeingShown:(BOOL)isShown
- (void)enableOverlayContainerUserInteractions:(BOOL)enableOverlayContainerUserInteractions
{
self.inputToolbarView.editable = !isShown;
self.bubblesTableView.scrollsToTop = !isShown;
self.overlayContainerView.userInteractionEnabled = isShown;
self.inputToolbarView.editable = !enableOverlayContainerUserInteractions;
self.bubblesTableView.scrollsToTop = !enableOverlayContainerUserInteractions;
self.overlayContainerView.userInteractionEnabled = enableOverlayContainerUserInteractions;
}
#pragma mark - RoomContextualMenuViewControllerDelegate