diff --git a/IRCCloud/Classes/EventsTableView.m b/IRCCloud/Classes/EventsTableView.m index 7a5d6b867..65f9bbaae 100644 --- a/IRCCloud/Classes/EventsTableView.m +++ b/IRCCloud/Classes/EventsTableView.m @@ -221,6 +221,7 @@ - (void)viewDidLoad { self->_tableView.estimatedSectionFooterHeight = 0; lp = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(_longPress:)]; lp.minimumPressDuration = 1.0; + lp.cancelsTouchesInView = YES; lp.delegate = self; [self->_tableView addGestureRecognizer:lp]; self->_topUnreadView.backgroundColor = [UIColor chatterBarColor]; diff --git a/IRCCloud/Classes/LinkLabel.m b/IRCCloud/Classes/LinkLabel.m index 4c20b4e33..776a4e4ef 100644 --- a/IRCCloud/Classes/LinkLabel.m +++ b/IRCCloud/Classes/LinkLabel.m @@ -51,7 +51,7 @@ -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveT } -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { - return NO; + return YES; } -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { diff --git a/IRCCloud/Classes/MainViewController.m b/IRCCloud/Classes/MainViewController.m index 8a4f8ba05..b6cba8963 100644 --- a/IRCCloud/Classes/MainViewController.m +++ b/IRCCloud/Classes/MainViewController.m @@ -4328,6 +4328,7 @@ -(void)rowLongPressed:(Event *)event rect:(CGRect)rect link:(NSString *)url { self->_selectedUser = nil; } self->_selectedEvent = event; + self->_selectedRect = rect; self->_selectedURL = url; if([self->_selectedURL hasPrefix:@"irccloud-paste-"]) self->_selectedURL = [self->_selectedURL substringFromIndex:15]; @@ -4871,9 +4872,9 @@ -(void)actionSheetActionClicked:(NSString *)action { } else if([action isEqualToString:@"Share URL"]) { [UIColor clearTheme]; UIActivityViewController *activityController = [URLHandler activityControllerForItems:@[[NSURL URLWithString:self->_selectedURL]] type:@"URL"]; - activityController.popoverPresentationController.sourceView = self.slidingViewController.view; - activityController.popoverPresentationController.sourceRect = [self->_eventsView.tableView convertRect:self->_selectedRect toView:self.slidingViewController.view]; - [self.slidingViewController presentViewController:activityController animated:YES completion:nil]; + activityController.popoverPresentationController.sourceView = self.view; + activityController.popoverPresentationController.sourceRect = self->_selectedRect; + [self presentViewController:activityController animated:YES completion:nil]; } else if([action isEqualToString:@"Delete Message"]) { [self dismissKeyboard]; [self.view.window endEditing:YES]; diff --git a/IRCCloud/Classes/NetworkConnection.m b/IRCCloud/Classes/NetworkConnection.m index 88b9e12e7..3e4f21dbb 100644 --- a/IRCCloud/Classes/NetworkConnection.m +++ b/IRCCloud/Classes/NetworkConnection.m @@ -384,14 +384,10 @@ -(id)init { if([event isImportant:b.type]) { User *u = [self->_users getUser:event.from cid:event.cid bid:event.bid]; if(u) { - if(u.lastMessage < event.eid) { + if(u.lastMessage < event.eid) u.lastMessage = event.eid; - } - if(event.isHighlight) { - if(u.lastMention < event.eid) { - u.lastMention = event.eid; - } - } + if(event.isHighlight && u.lastMention < event.eid) + u.lastMention = event.eid; } if(event.eid > b.last_seen_eid && (event.isHighlight || [b.type isEqualToString:@"conversation"])) { BOOL show = YES;