diff --git a/Signal/src/ViewControllers/ConversationView/MessagesViewController.m b/Signal/src/ViewControllers/ConversationView/MessagesViewController.m index 1b7806e1c..2c97a138c 100644 --- a/Signal/src/ViewControllers/ConversationView/MessagesViewController.m +++ b/Signal/src/ViewControllers/ConversationView/MessagesViewController.m @@ -4501,6 +4501,11 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) { { OWSAssert([NSThread isMainThread]); + // JSQMessageView has glitchy behavior. When presenting/dismissing view + // controllers, the size of the input toolbar and/or collection view can + // repeatedly change, leaving scroll state in an invalid state. The + // simplest fix that covers most cases is to ensure that we remain + // "scrolled to bottom" across these changes. if (self.wasScrolledToBottomBeforeLayoutChange) { [self scrollToBottomImmediately]; }