gesture(LongPressGesture()) issue with scroll view

I've being playing aground with long press gesture in scroll view and noticed gesture(LongPressGesture()) doesn't seem to work with scroll view's scrolling which doesn't seem to be the intended behavior to me.

Take the following example: the blue rectangle is modified with onLongPressGesture and the red rectangle is modified with LongPressGesture (_EndedGesture<LongPressGesture> to be specific).

            ScrollView {
                Rectangle()
                    .fill(.blue)
                    .frame(width: 200, height: 200)
                    .onLongPressGesture {
                        print("onLongPressGesture performed")
                    } onPressingChanged: { _ in
                        print("onLongPressGesture changed")
                    }
                    .overlay {
                         Text("onLongPressGesture")
                    }
                
                
                Rectangle()
                    .fill(.red)
                    .frame(width: 200, height: 200)
                    .gesture(LongPressGesture()
                        .onEnded { _ in
                            print("gesture ended")
                        })
                    .overlay {
                        Text("gesture(LongPressGesture)")
                    }
            }

If you start scrolling from either of the rectangles (that is, start scrolling with your finger on either of the rectangles), the ScrollView will scroll.

However, if LongPressGesture is modified with either onChanged or .updating, ScrollView won't respond to scroll if the scroll is started from red rectangle. Even setting the maximumDistance to 0 won't help. As for its counter part onLongPressGesture, even though onPressingChanged to onLongPressGesture, scrolling still works if it's started from onLongPressGesture modified view.

            ScrollView {
                Rectangle()
                    .fill(.blue)
                    .frame(width: 200, height: 200)
                    .onLongPressGesture {
                        print("onLongPressGesture performed")
                    } onPressingChanged: { _ in
                        print("onLongPressGesture changed")
                    }
                    .overlay {
                         Text("onLongPressGesture")
                    }
                
                
                Rectangle()
                    .fill(.red)
                    .frame(width: 200, height: 200)
                    .gesture(LongPressGesture(maximumDistance: 0)
                        // scroll from the red rectangle won't work if I add either `updating` or `onChanged` but I put both here just to demonstrate
                        // you will need to add `@GestureState private var isPressing = false` to your view body
                        .updating($isPressing) { value, state, transaction in
                            state = value
                            print("gesture updating")
                        }
                        .onChanged { value in
                            print("gesture changed")
                        }
                        .onEnded { _ in
                            print("gesture ended")
                        })
                    .overlay {
                        Text("gesture(LongPressGesture)")
                    }
            }

This doesn't seem right to me. I would expect the view modified by LongPressGesture(), no matter if the gesture has onChanged or updating, should be able to start scroll in a scroll view, just like onLongPressGesture.

I observed this behavior in a physical device running iOS 26.1, and I do not know the behavior on other versions.

gesture(LongPressGesture()) issue with scroll view
 
 
Q