@@ -248,6 +248,43 @@ class RenderCustomPaintOrderViewport extends RenderViewport {
248
248
}
249
249
}
250
250
251
+ /// A version of [ScrollPosition] adapted for the Zulip message list,
252
+ /// used by [MessageListScrollController] .
253
+ class MessageListScrollPosition extends ScrollPositionWithSingleContext {
254
+ MessageListScrollPosition ({
255
+ required super .physics,
256
+ required super .context,
257
+ super .initialPixels,
258
+ super .keepScrollOffset,
259
+ super .oldPosition,
260
+ super .debugLabel,
261
+ });
262
+ }
263
+
264
+ /// A version of [ScrollController] adapted for the Zulip message list.
265
+ class MessageListScrollController extends ScrollController {
266
+ MessageListScrollController ({
267
+ super .initialScrollOffset,
268
+ super .keepScrollOffset,
269
+ super .debugLabel,
270
+ super .onAttach,
271
+ super .onDetach,
272
+ });
273
+
274
+ @override
275
+ ScrollPosition createScrollPosition (ScrollPhysics physics,
276
+ ScrollContext context, ScrollPosition ? oldPosition) {
277
+ return MessageListScrollPosition (
278
+ physics: physics,
279
+ context: context,
280
+ initialPixels: initialScrollOffset,
281
+ keepScrollOffset: keepScrollOffset,
282
+ oldPosition: oldPosition,
283
+ debugLabel: debugLabel,
284
+ );
285
+ }
286
+ }
287
+
251
288
/// A version of [CustomScrollView] adapted for the Zulip message list.
252
289
///
253
290
/// This lets us customize behavior in ways that aren't currently supported
0 commit comments