react-native-windows 0.84.0-preview.7 → 0.84.0-preview.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +15 -1
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +4 -0
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +1 -0
- package/PropertySheets/Generated/PackageVersion.g.props +2 -2
- package/package.json +1 -1
|
@@ -1092,12 +1092,26 @@ void CompositionEventHandler::onPointerCaptureLost(
|
|
|
1092
1092
|
if (SurfaceId() == -1)
|
|
1093
1093
|
return;
|
|
1094
1094
|
|
|
1095
|
-
if (m_pointerCapturingComponentTag) {
|
|
1095
|
+
if (m_pointerCapturingComponentTag != -1) {
|
|
1096
1096
|
// copy array to avoid iterator being invalidated during deletion
|
|
1097
1097
|
std::unordered_set<PointerId> capturedPointers = m_capturedPointers;
|
|
1098
1098
|
|
|
1099
1099
|
for (auto pointerId : capturedPointers) {
|
|
1100
1100
|
releasePointerCapture(pointerId, m_pointerCapturingComponentTag);
|
|
1101
|
+
|
|
1102
|
+
// Cancel any active touch for this pointer so React Native is notified that
|
|
1103
|
+
// the touch ended. Without this, m_activeTouches retains a zombie entry and
|
|
1104
|
+
// RN JS is never told the touch is gone — leaving Pressables stuck in a
|
|
1105
|
+
// pressed state after a system-interrupted gesture (e.g. system back swipe,
|
|
1106
|
+
// Alt+Tab, another window coming foreground).
|
|
1107
|
+
auto activeTouch = m_activeTouches.find(pointerId);
|
|
1108
|
+
if (activeTouch != m_activeTouches.end()) {
|
|
1109
|
+
ActiveTouch cancelledTouchCopy = std::move(activeTouch->second);
|
|
1110
|
+
m_activeTouches.erase(activeTouch);
|
|
1111
|
+
if (cancelledTouchCopy.eventEmitter) {
|
|
1112
|
+
DispatchSynthesizedTouchCancelForActiveTouch(cancelledTouchCopy, pointerPoint, keyModifiers);
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
1101
1115
|
}
|
|
1102
1116
|
|
|
1103
1117
|
m_pointerCapturingComponentTag = -1;
|
|
@@ -130,6 +130,7 @@ void ImageComponentView::didReceiveImage(const std::shared_ptr<ImageResponseImag
|
|
|
130
130
|
#endif
|
|
131
131
|
|
|
132
132
|
m_imageResponseImage = imageResponseImage;
|
|
133
|
+
m_requiresImageRedraw = true;
|
|
133
134
|
ensureDrawingSurface();
|
|
134
135
|
}
|
|
135
136
|
|
|
@@ -310,6 +311,9 @@ void ImageComponentView::ensureDrawingSurface() noexcept {
|
|
|
310
311
|
} else if (m_imageResponseImage->m_brushFactory) {
|
|
311
312
|
Visual().as<Experimental::ISpriteVisual>().Brush(
|
|
312
313
|
m_imageResponseImage->m_brushFactory(m_reactContext.Handle(), m_compContext));
|
|
314
|
+
} else if (m_requiresImageRedraw) {
|
|
315
|
+
m_requiresImageRedraw = false;
|
|
316
|
+
DrawImage();
|
|
313
317
|
}
|
|
314
318
|
}
|
|
315
319
|
|
|
@@ -96,6 +96,7 @@ struct ImageComponentView : ImageComponentViewT<ImageComponentView, ViewComponen
|
|
|
96
96
|
winrt::Microsoft::ReactNative::Composition::Experimental::IDrawingSurfaceBrush m_drawingSurface;
|
|
97
97
|
std::shared_ptr<ImageResponseImage> m_imageResponseImage;
|
|
98
98
|
std::shared_ptr<WindowsImageResponseObserver> m_imageResponseObserver;
|
|
99
|
+
bool m_requiresImageRedraw{true};
|
|
99
100
|
facebook::react::ImageShadowNode::ConcreteState::Shared m_state;
|
|
100
101
|
};
|
|
101
102
|
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
-->
|
|
11
11
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
12
12
|
<PropertyGroup>
|
|
13
|
-
<ReactNativeWindowsVersion>0.84.0-preview.
|
|
13
|
+
<ReactNativeWindowsVersion>0.84.0-preview.9</ReactNativeWindowsVersion>
|
|
14
14
|
<ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
|
|
15
15
|
<ReactNativeWindowsMinor>84</ReactNativeWindowsMinor>
|
|
16
16
|
<ReactNativeWindowsPatch>0</ReactNativeWindowsPatch>
|
|
17
17
|
<ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
|
|
18
|
-
<ReactNativeWindowsCommitId>
|
|
18
|
+
<ReactNativeWindowsCommitId>724a8ddbf9f6996e42bbab42ae4e642efaffe27f</ReactNativeWindowsCommitId>
|
|
19
19
|
</PropertyGroup>
|
|
20
20
|
</Project>
|