diff --git a/lib/widgets/room_chat/room_chat.dart b/lib/widgets/room_chat/room_chat.dart index 2d89bd9..a49e6f9 100644 --- a/lib/widgets/room_chat/room_chat.dart +++ b/lib/widgets/room_chat/room_chat.dart @@ -106,11 +106,16 @@ final class const RoomChat({ lastComposerHeight.value = composerSize.value; if (delta != 0) { + final wasAtBottom = scroll.atBottom; + WidgetsBinding.instance.addPostFrameCallback((_) { final controller = scroll.scrollController; if (!controller.hasClients) return; - controller.jumpTo(controller.position.pixels - delta); + final position = controller.position; + controller.jumpTo( + wasAtBottom ? position.minScrollExtent : position.pixels - delta, + ); }); }