react-native-windows 0.74.11 → 0.74.13
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/Common/Common.vcxproj +8 -0
- package/Directory.Build.targets +5 -0
- package/Folly/Folly.vcxproj +10 -2
- package/Folly/Folly.vcxproj.filters +0 -7
- package/Libraries/Text/Text.windows.js +1 -0
- package/Microsoft.ReactNative/Composition.Input.idl +3 -3
- package/Microsoft.ReactNative/CompositionSwitcher.idl +1 -0
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +3 -0
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +2 -2
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +10 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +16 -27
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +81 -47
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +4 -0
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +19 -15
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +4 -2
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +42 -5
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +22 -16
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +30 -6
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -2
- package/Microsoft.ReactNative/packages.lock.json +10 -0
- package/PropertySheets/ARM64EC.props +13 -0
- package/PropertySheets/Application/ARM64EC.props +13 -0
- package/PropertySheets/DynamicLibrary/ARM64EC.props +13 -0
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +2 -1
- package/PropertySheets/StaticLibrary/ARM64EC.props +13 -0
- package/ReactCommon/ReactCommon.vcxproj +9 -1
- package/ReactCommon/ReactCommon.vcxproj.filters +16 -12
- package/Scripts/OfficeReact.Win32.nuspec +16 -18
- package/Scripts/StripAdditionalPlatformsFromNuspec.ps1 +1 -1
- package/fmt/fmt.vcxproj +9 -1
- package/package.json +1 -1
package/Common/Common.vcxproj
CHANGED
|
@@ -11,10 +11,18 @@
|
|
|
11
11
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
12
12
|
<Import Project="$(ReactNativeWindowsDir)PropertySheets\React.Cpp.props" />
|
|
13
13
|
<ItemGroup Label="ProjectConfigurations">
|
|
14
|
+
<ProjectConfiguration Include="Debug|ARM64EC">
|
|
15
|
+
<Configuration>Debug</Configuration>
|
|
16
|
+
<Platform>ARM64EC</Platform>
|
|
17
|
+
</ProjectConfiguration>
|
|
14
18
|
<ProjectConfiguration Include="Debug|x64">
|
|
15
19
|
<Configuration>Debug</Configuration>
|
|
16
20
|
<Platform>x64</Platform>
|
|
17
21
|
</ProjectConfiguration>
|
|
22
|
+
<ProjectConfiguration Include="Release|ARM64EC">
|
|
23
|
+
<Configuration>Release</Configuration>
|
|
24
|
+
<Platform>ARM64EC</Platform>
|
|
25
|
+
</ProjectConfiguration>
|
|
18
26
|
<ProjectConfiguration Include="Release|x64">
|
|
19
27
|
<Configuration>Release</Configuration>
|
|
20
28
|
<Platform>x64</Platform>
|
package/Directory.Build.targets
CHANGED
|
@@ -21,4 +21,9 @@
|
|
|
21
21
|
<MSBuild Projects="$(MSBuildProjectFile)" Targets="Restore" Properties="RestoreProjectStyle=PackagesConfig;RestorePackagesConfig=true;RestoreUseStaticGraphEvaluation=false" />
|
|
22
22
|
</Target>
|
|
23
23
|
|
|
24
|
+
<PropertyGroup Label="WindowsAppSDKOverrides" Condition="'$(Platform)' == 'ARM64EC'">
|
|
25
|
+
<Ixp-Platform>win10-x64</Ixp-Platform>
|
|
26
|
+
<_WindowsAppSDKFoundationPlatform>x64</_WindowsAppSDKFoundationPlatform>
|
|
27
|
+
<_MrtCoreRuntimeIdentifier>x64</_MrtCoreRuntimeIdentifier>
|
|
28
|
+
</PropertyGroup>
|
|
24
29
|
</Project>
|
package/Folly/Folly.vcxproj
CHANGED
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
<Configuration>Debug</Configuration>
|
|
18
18
|
<Platform>ARM64</Platform>
|
|
19
19
|
</ProjectConfiguration>
|
|
20
|
+
<ProjectConfiguration Include="Debug|ARM64EC">
|
|
21
|
+
<Configuration>Debug</Configuration>
|
|
22
|
+
<Platform>ARM64EC</Platform>
|
|
23
|
+
</ProjectConfiguration>
|
|
20
24
|
<ProjectConfiguration Include="Release|ARM64">
|
|
21
25
|
<Configuration>Release</Configuration>
|
|
22
26
|
<Platform>ARM64</Platform>
|
|
@@ -25,6 +29,10 @@
|
|
|
25
29
|
<Configuration>Debug</Configuration>
|
|
26
30
|
<Platform>x64</Platform>
|
|
27
31
|
</ProjectConfiguration>
|
|
32
|
+
<ProjectConfiguration Include="Release|ARM64EC">
|
|
33
|
+
<Configuration>Release</Configuration>
|
|
34
|
+
<Platform>ARM64EC</Platform>
|
|
35
|
+
</ProjectConfiguration>
|
|
28
36
|
<ProjectConfiguration Include="Release|x64">
|
|
29
37
|
<Configuration>Release</Configuration>
|
|
30
38
|
<Platform>x64</Platform>
|
|
@@ -279,7 +287,7 @@
|
|
|
279
287
|
SourceUrl="https://github.com/facebook/folly/archive/v$(FollyVersion).zip"
|
|
280
288
|
DestinationFileName="$(FollyZipFile)"
|
|
281
289
|
DestinationFolder="$(FollyZipDir)"
|
|
282
|
-
Retries="10"/>
|
|
290
|
+
Retries="10" />
|
|
283
291
|
</Target>
|
|
284
292
|
<Target Name="UnzipFolly" BeforeTargets="PrepareForBuild" DependsOnTargets="DownloadFolly">
|
|
285
293
|
<Message Condition="!Exists('$(FollyDir)folly\dynamic.h')" Importance="High" Text="Unzipping folly to $([MSBuild]::NormalizePath($(FollyDir)..))." />
|
|
@@ -328,4 +336,4 @@
|
|
|
328
336
|
<ItemGroup>
|
|
329
337
|
<ProjectReference Include="..\Fmt\Fmt.vcxproj" Project="{14b93DC8-FD93-4A6D-81CB-8BC96644501C}" />
|
|
330
338
|
</ItemGroup>
|
|
331
|
-
</Project>
|
|
339
|
+
</Project>
|
|
@@ -83,13 +83,6 @@
|
|
|
83
83
|
</ClCompile>
|
|
84
84
|
<ClCompile Include="pch.cpp" />
|
|
85
85
|
<ClCompile Include="$(FollyDir)\folly\system\AtFork.cpp" />
|
|
86
|
-
<ClCompile Include="$(FollyDir)\folly\SharedMutex.cpp" />
|
|
87
|
-
<ClCompile Include="$(FollyDir)\folly\concurrency\CacheLocality.cpp" />
|
|
88
|
-
<ClCompile Include="$(FollyDir)\folly\detail\Futex.cpp" />
|
|
89
|
-
<ClCompile Include="$(FollyDir)\folly\synchronization\ParkingLot.cpp" />
|
|
90
|
-
<ClCompile Include="$(FollyDir)\folly\synchronization\SanitizeThread.cpp" />
|
|
91
|
-
<ClCompile Include="$(FollyDir)\folly\portability\SysResource.cpp" />
|
|
92
|
-
<ClCompile Include="$(FollyDir)\folly\portability\Unistd.cpp" />
|
|
93
86
|
</ItemGroup>
|
|
94
87
|
<ItemGroup>
|
|
95
88
|
<ClInclude Include="$(FollyDir)\folly\portability\Asm.h">
|
|
@@ -279,6 +279,7 @@ const Text: React.AbstractComponent<
|
|
|
279
279
|
} else {
|
|
280
280
|
let styleProps: ViewStyleProp = (restProps.style: any);
|
|
281
281
|
if (
|
|
282
|
+
global.RN$Bridgeless !== true && // [Windows] Fabric text handles borders, but on paper we need to wrap it in an extra view
|
|
282
283
|
styleProps &&
|
|
283
284
|
styleProps.borderColor &&
|
|
284
285
|
(styleProps.borderWidth ||
|
|
@@ -8,7 +8,7 @@ namespace Microsoft.ReactNative.Composition.Input
|
|
|
8
8
|
{
|
|
9
9
|
interface KeyboardSource
|
|
10
10
|
{
|
|
11
|
-
|
|
11
|
+
Microsoft.UI.Input.VirtualKeyStates GetKeyState(Windows.System.VirtualKey key);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
interface RoutedEventArgs
|
|
@@ -21,14 +21,14 @@ namespace Microsoft.ReactNative.Composition.Input
|
|
|
21
21
|
String DeviceId { get; };
|
|
22
22
|
Boolean Handled { get; set; };
|
|
23
23
|
Windows.System.VirtualKey Key { get; };
|
|
24
|
-
|
|
24
|
+
Microsoft.UI.Input.PhysicalKeyStatus KeyStatus { get; };
|
|
25
25
|
Windows.System.VirtualKey OriginalKey { get; };
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
interface CharacterReceivedRoutedEventArgs requires RoutedEventArgs
|
|
29
29
|
{
|
|
30
30
|
Boolean Handled { get; set; };
|
|
31
|
-
|
|
31
|
+
Microsoft.UI.Input.PhysicalKeyStatus KeyStatus { get; };
|
|
32
32
|
Int32 KeyCode { get; };
|
|
33
33
|
};
|
|
34
34
|
|
|
@@ -106,6 +106,7 @@ namespace Microsoft.ReactNative.Composition.Experimental
|
|
|
106
106
|
interface IScrollVisual requires IVisual
|
|
107
107
|
{
|
|
108
108
|
void Brush(IBrush brush);
|
|
109
|
+
void ScrollEnabled(Boolean isScrollEnabled);
|
|
109
110
|
event Windows.Foundation.EventHandler<IScrollPositionChangedArgs> ScrollPositionChanged;
|
|
110
111
|
void ContentSize(Windows.Foundation.Numerics.Vector2 size);
|
|
111
112
|
Windows.Foundation.Numerics.Vector3 ScrollPosition { get; };
|
|
@@ -120,6 +120,9 @@ void ComponentViewRegistry::enqueueComponentViewWithComponentHandle(
|
|
|
120
120
|
ComponentViewDescriptor componentViewDescriptor) noexcept {
|
|
121
121
|
assert(m_registry.find(tag) != m_registry.end());
|
|
122
122
|
|
|
123
|
+
winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(componentViewDescriptor.view)
|
|
124
|
+
->prepareForRecycle();
|
|
125
|
+
|
|
123
126
|
m_registry.erase(tag);
|
|
124
127
|
}
|
|
125
128
|
} // namespace Microsoft::ReactNative
|
|
@@ -68,7 +68,7 @@ winrt::Windows::System::VirtualKey KeyRoutedEventArgs::Key() noexcept {
|
|
|
68
68
|
return m_key;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
winrt::
|
|
71
|
+
winrt::Microsoft::UI::Input::PhysicalKeyStatus KeyRoutedEventArgs::KeyStatus() noexcept {
|
|
72
72
|
return m_keyStatus;
|
|
73
73
|
}
|
|
74
74
|
|
|
@@ -118,7 +118,7 @@ void CharacterReceivedRoutedEventArgs::Handled(bool value) noexcept {
|
|
|
118
118
|
int32_t CharacterReceivedRoutedEventArgs::KeyCode() noexcept {
|
|
119
119
|
return m_keycode;
|
|
120
120
|
}
|
|
121
|
-
winrt::
|
|
121
|
+
winrt::Microsoft::UI::Input::PhysicalKeyStatus CharacterReceivedRoutedEventArgs::KeyStatus() noexcept {
|
|
122
122
|
return m_keyStatus;
|
|
123
123
|
}
|
|
124
124
|
|
|
@@ -31,14 +31,14 @@ struct KeyRoutedEventArgs : winrt::implements<
|
|
|
31
31
|
bool Handled() noexcept;
|
|
32
32
|
void Handled(bool value) noexcept;
|
|
33
33
|
winrt::Windows::System::VirtualKey Key() noexcept;
|
|
34
|
-
winrt::
|
|
34
|
+
winrt::Microsoft::UI::Input::PhysicalKeyStatus KeyStatus() noexcept;
|
|
35
35
|
winrt::Windows::System::VirtualKey OriginalKey() noexcept;
|
|
36
36
|
|
|
37
37
|
private:
|
|
38
38
|
facebook::react::Tag m_tag{-1};
|
|
39
39
|
bool m_handled{false};
|
|
40
40
|
winrt::Windows::System::VirtualKey m_key;
|
|
41
|
-
winrt::
|
|
41
|
+
winrt::Microsoft::UI::Input::PhysicalKeyStatus m_keyStatus;
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
struct CharacterReceivedRoutedEventArgs
|
|
@@ -57,13 +57,13 @@ struct CharacterReceivedRoutedEventArgs
|
|
|
57
57
|
bool Handled() noexcept;
|
|
58
58
|
void Handled(bool value) noexcept;
|
|
59
59
|
int32_t KeyCode() noexcept;
|
|
60
|
-
winrt::
|
|
60
|
+
winrt::Microsoft::UI::Input::PhysicalKeyStatus KeyStatus() noexcept;
|
|
61
61
|
|
|
62
62
|
private:
|
|
63
63
|
facebook::react::Tag m_tag{-1};
|
|
64
64
|
bool m_handled{false};
|
|
65
65
|
int32_t m_keycode;
|
|
66
|
-
winrt::
|
|
66
|
+
winrt::Microsoft::UI::Input::PhysicalKeyStatus m_keyStatus;
|
|
67
67
|
};
|
|
68
68
|
|
|
69
69
|
struct Pointer : PointerT<Pointer> {
|
|
@@ -795,6 +795,16 @@ struct CompScrollerVisual : winrt::implements<
|
|
|
795
795
|
m_visual.Brush(TTypeRedirects::CompositionContextHelper::InnerBrush(brush));
|
|
796
796
|
}
|
|
797
797
|
|
|
798
|
+
void ScrollEnabled(bool isScrollEnabled) noexcept {
|
|
799
|
+
if (isScrollEnabled) {
|
|
800
|
+
m_visualInteractionSource.ManipulationRedirectionMode(
|
|
801
|
+
TTypeRedirects::VisualInteractionSourceRedirectionMode::CapableTouchpadAndPointerWheel);
|
|
802
|
+
} else {
|
|
803
|
+
m_visualInteractionSource.ManipulationRedirectionMode(
|
|
804
|
+
TTypeRedirects::VisualInteractionSourceRedirectionMode::Off);
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
|
|
798
808
|
void Opacity(float opacity) noexcept {
|
|
799
809
|
m_visual.Opacity(opacity);
|
|
800
810
|
}
|
|
@@ -101,9 +101,9 @@ struct CompositionKeyboardSource
|
|
|
101
101
|
: winrt::implements<CompositionKeyboardSource, winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource> {
|
|
102
102
|
CompositionKeyboardSource(CompositionEventHandler *outer) : m_outer(outer) {}
|
|
103
103
|
|
|
104
|
-
winrt::
|
|
104
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates GetKeyState(winrt::Windows::System::VirtualKey key) noexcept {
|
|
105
105
|
if (!m_outer)
|
|
106
|
-
return winrt::
|
|
106
|
+
return winrt::Microsoft::UI::Input::VirtualKeyStates::None;
|
|
107
107
|
return m_outer->GetKeyState(key);
|
|
108
108
|
}
|
|
109
109
|
|
|
@@ -121,23 +121,11 @@ struct CompositionInputKeyboardSource : winrt::implements<
|
|
|
121
121
|
winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource> {
|
|
122
122
|
CompositionInputKeyboardSource(winrt::Microsoft::UI::Input::InputKeyboardSource source) : m_source(source) {}
|
|
123
123
|
|
|
124
|
-
winrt::
|
|
124
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates GetKeyState(winrt::Windows::System::VirtualKey key) noexcept {
|
|
125
125
|
if (!m_source)
|
|
126
|
-
return winrt::
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
static_cast<winrt::Windows::UI::Core::CoreVirtualKeyStates>(
|
|
130
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ==
|
|
131
|
-
winrt::Windows::UI::Core::CoreVirtualKeyStates::Down);
|
|
132
|
-
static_assert(
|
|
133
|
-
static_cast<winrt::Windows::UI::Core::CoreVirtualKeyStates>(
|
|
134
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Locked) ==
|
|
135
|
-
winrt::Windows::UI::Core::CoreVirtualKeyStates::Locked);
|
|
136
|
-
static_assert(
|
|
137
|
-
static_cast<winrt::Windows::UI::Core::CoreVirtualKeyStates>(
|
|
138
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::None) ==
|
|
139
|
-
winrt::Windows::UI::Core::CoreVirtualKeyStates::None);
|
|
140
|
-
return static_cast<winrt::Windows::UI::Core::CoreVirtualKeyStates>(m_source.GetKeyState(key));
|
|
126
|
+
return winrt::Microsoft::UI::Input::VirtualKeyStates::None;
|
|
127
|
+
|
|
128
|
+
return m_source.GetKeyState(key);
|
|
141
129
|
}
|
|
142
130
|
|
|
143
131
|
void Disconnect() noexcept {
|
|
@@ -360,16 +348,15 @@ void CompositionEventHandler::onPointerWheelChanged(
|
|
|
360
348
|
}
|
|
361
349
|
}
|
|
362
350
|
|
|
363
|
-
winrt::
|
|
351
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates CompositionEventHandler::GetKeyState(
|
|
364
352
|
winrt::Windows::System::VirtualKey key) noexcept {
|
|
365
|
-
winrt::
|
|
353
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates coreKeyState = winrt::Microsoft::UI::Input::VirtualKeyStates::None;
|
|
366
354
|
SHORT keyState = ::GetKeyState(static_cast<int>(key));
|
|
367
355
|
if (keyState & 0x01) {
|
|
368
|
-
coreKeyState = winrt::
|
|
356
|
+
coreKeyState = winrt::Microsoft::UI::Input::VirtualKeyStates::Locked;
|
|
369
357
|
}
|
|
370
358
|
if (keyState & 0x8000) {
|
|
371
|
-
coreKeyState =
|
|
372
|
-
static_cast<int>(coreKeyState) | static_cast<int>(winrt::Windows::UI::Core::CoreVirtualKeyStates::Down));
|
|
359
|
+
coreKeyState = coreKeyState | winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
373
360
|
}
|
|
374
361
|
|
|
375
362
|
return coreKeyState;
|
|
@@ -510,10 +497,12 @@ void CompositionEventHandler::onKeyDown(
|
|
|
510
497
|
return;
|
|
511
498
|
}
|
|
512
499
|
|
|
513
|
-
bool fShift =
|
|
514
|
-
winrt::Windows::
|
|
515
|
-
|
|
516
|
-
|
|
500
|
+
bool fShift =
|
|
501
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::Shift) &
|
|
502
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
503
|
+
bool fCtrl =
|
|
504
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::Control) &
|
|
505
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
517
506
|
|
|
518
507
|
if (fShift && fCtrl && args.Key() == static_cast<winrt::Windows::System::VirtualKey>(VkKeyScanA('d')) &&
|
|
519
508
|
Mso::React::ReactOptions::UseDeveloperSupport(m_context.Properties().Handle())) {
|
|
@@ -36,7 +36,7 @@ class CompositionEventHandler {
|
|
|
36
36
|
|
|
37
37
|
int64_t SendMessage(HWND hwnd, uint32_t msg, uint64_t wParam, int64_t lParam) noexcept;
|
|
38
38
|
void RemoveTouchHandlers();
|
|
39
|
-
winrt::
|
|
39
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates GetKeyState(winrt::Windows::System::VirtualKey key) noexcept;
|
|
40
40
|
|
|
41
41
|
bool CapturePointer(
|
|
42
42
|
const winrt::Microsoft::ReactNative::Composition::Input::Pointer &pointer,
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
#include <Utils/ValueUtils.h>
|
|
17
17
|
#include <Views/FrameworkElementTransferProperties.h>
|
|
18
18
|
#include <winrt/Microsoft.ReactNative.Composition.Experimental.h>
|
|
19
|
+
#include <winrt/Microsoft.UI.Input.h>
|
|
19
20
|
#include <winrt/Windows.UI.Composition.h>
|
|
20
21
|
#include "CompositionContextHelper.h"
|
|
21
22
|
#include "CompositionDynamicAutomationProvider.h"
|
|
@@ -179,11 +180,46 @@ const facebook::react::LayoutMetrics &ComponentView::layoutMetrics() const noexc
|
|
|
179
180
|
return m_layoutMetrics;
|
|
180
181
|
}
|
|
181
182
|
|
|
183
|
+
void ComponentView::FinalizeTransform(
|
|
184
|
+
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
185
|
+
const facebook::react::ViewProps &viewProps) noexcept {
|
|
186
|
+
const auto resolveTransformMatrix = viewProps.resolveTransform(layoutMetrics);
|
|
187
|
+
winrt::Windows::Foundation::Numerics::float4x4 transformMatrix;
|
|
188
|
+
transformMatrix.m11 = resolveTransformMatrix.matrix[0];
|
|
189
|
+
transformMatrix.m12 = resolveTransformMatrix.matrix[1];
|
|
190
|
+
transformMatrix.m13 = resolveTransformMatrix.matrix[2];
|
|
191
|
+
transformMatrix.m14 = resolveTransformMatrix.matrix[3];
|
|
192
|
+
transformMatrix.m21 = resolveTransformMatrix.matrix[4];
|
|
193
|
+
transformMatrix.m22 = resolveTransformMatrix.matrix[5];
|
|
194
|
+
transformMatrix.m23 = resolveTransformMatrix.matrix[6];
|
|
195
|
+
transformMatrix.m24 = resolveTransformMatrix.matrix[7];
|
|
196
|
+
transformMatrix.m31 = resolveTransformMatrix.matrix[8];
|
|
197
|
+
transformMatrix.m32 = resolveTransformMatrix.matrix[9];
|
|
198
|
+
transformMatrix.m33 = resolveTransformMatrix.matrix[10];
|
|
199
|
+
transformMatrix.m34 = resolveTransformMatrix.matrix[11];
|
|
200
|
+
transformMatrix.m41 = resolveTransformMatrix.matrix[12];
|
|
201
|
+
transformMatrix.m42 = resolveTransformMatrix.matrix[13];
|
|
202
|
+
transformMatrix.m43 = resolveTransformMatrix.matrix[14];
|
|
203
|
+
transformMatrix.m44 = resolveTransformMatrix.matrix[15];
|
|
204
|
+
|
|
205
|
+
auto centerPointPropSet = EnsureCenterPointPropertySet();
|
|
206
|
+
if (centerPointPropSet) {
|
|
207
|
+
centerPointPropSet.InsertMatrix4x4(L"transform", transformMatrix);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
EnsureTransformMatrixFacade();
|
|
211
|
+
m_FinalizeTransform = false;
|
|
212
|
+
}
|
|
213
|
+
|
|
182
214
|
void ComponentView::FinalizeUpdates(winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept {
|
|
183
215
|
if ((m_flags & ComponentViewFeatures::NativeBorder) == ComponentViewFeatures::NativeBorder) {
|
|
184
216
|
finalizeBorderUpdates(m_layoutMetrics, *viewProps());
|
|
185
217
|
}
|
|
186
218
|
|
|
219
|
+
if (m_FinalizeTransform) {
|
|
220
|
+
FinalizeTransform(m_layoutMetrics, *viewProps());
|
|
221
|
+
}
|
|
222
|
+
|
|
187
223
|
base_type::FinalizeUpdates(updateMask);
|
|
188
224
|
}
|
|
189
225
|
|
|
@@ -1245,30 +1281,7 @@ void ComponentView::updateTransformProps(
|
|
|
1245
1281
|
|
|
1246
1282
|
// Transform - TODO doesn't handle multiple of the same kind of transform -- Doesn't handle hittesting updates
|
|
1247
1283
|
if (oldViewProps.transform != newViewProps.transform) {
|
|
1248
|
-
|
|
1249
|
-
transformMatrix.m11 = newViewProps.transform.matrix[0];
|
|
1250
|
-
transformMatrix.m12 = newViewProps.transform.matrix[1];
|
|
1251
|
-
transformMatrix.m13 = newViewProps.transform.matrix[2];
|
|
1252
|
-
transformMatrix.m14 = newViewProps.transform.matrix[3];
|
|
1253
|
-
transformMatrix.m21 = newViewProps.transform.matrix[4];
|
|
1254
|
-
transformMatrix.m22 = newViewProps.transform.matrix[5];
|
|
1255
|
-
transformMatrix.m23 = newViewProps.transform.matrix[6];
|
|
1256
|
-
transformMatrix.m24 = newViewProps.transform.matrix[7];
|
|
1257
|
-
transformMatrix.m31 = newViewProps.transform.matrix[8];
|
|
1258
|
-
transformMatrix.m32 = newViewProps.transform.matrix[9];
|
|
1259
|
-
transformMatrix.m33 = newViewProps.transform.matrix[10];
|
|
1260
|
-
transformMatrix.m34 = newViewProps.transform.matrix[11];
|
|
1261
|
-
transformMatrix.m41 = newViewProps.transform.matrix[12];
|
|
1262
|
-
transformMatrix.m42 = newViewProps.transform.matrix[13];
|
|
1263
|
-
transformMatrix.m43 = newViewProps.transform.matrix[14];
|
|
1264
|
-
transformMatrix.m44 = newViewProps.transform.matrix[15];
|
|
1265
|
-
|
|
1266
|
-
auto centerPointPropSet = EnsureCenterPointPropertySet();
|
|
1267
|
-
if (centerPointPropSet) {
|
|
1268
|
-
centerPointPropSet.InsertMatrix4x4(L"transform", transformMatrix);
|
|
1269
|
-
}
|
|
1270
|
-
|
|
1271
|
-
EnsureTransformMatrixFacade();
|
|
1284
|
+
m_FinalizeTransform = true;
|
|
1272
1285
|
}
|
|
1273
1286
|
}
|
|
1274
1287
|
|
|
@@ -1617,7 +1630,10 @@ inline winrt::Windows::System::VirtualKey GetLeftOrRightModifiedKey(
|
|
|
1617
1630
|
const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
|
|
1618
1631
|
winrt::Windows::System::VirtualKey leftKey,
|
|
1619
1632
|
winrt::Windows::System::VirtualKey rightKey) {
|
|
1620
|
-
return (source.GetKeyState(leftKey)
|
|
1633
|
+
return ((source.GetKeyState(leftKey) & winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ==
|
|
1634
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down)
|
|
1635
|
+
? leftKey
|
|
1636
|
+
: rightKey;
|
|
1621
1637
|
}
|
|
1622
1638
|
|
|
1623
1639
|
std::string CodeFromVirtualKey(
|
|
@@ -1650,16 +1666,20 @@ void ViewComponentView::OnKeyDown(
|
|
|
1650
1666
|
const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
|
|
1651
1667
|
const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
|
|
1652
1668
|
auto eventCode = CodeFromVirtualKey(source, args.Key());
|
|
1653
|
-
bool fShift =
|
|
1654
|
-
winrt::Windows::
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
bool
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1669
|
+
bool fShift =
|
|
1670
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::Shift) &
|
|
1671
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
1672
|
+
bool fAlt =
|
|
1673
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::Menu) &
|
|
1674
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
1675
|
+
bool fCtrl =
|
|
1676
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::Control) &
|
|
1677
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
1678
|
+
bool fMeta =
|
|
1679
|
+
((source.GetKeyState(winrt::Windows::System::VirtualKey::LeftWindows) &
|
|
1680
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ||
|
|
1681
|
+
((source.GetKeyState(winrt::Windows::System::VirtualKey::RightWindows) &
|
|
1682
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down);
|
|
1663
1683
|
|
|
1664
1684
|
if (args.OriginalSource() == Tag() && !args.Handled()) {
|
|
1665
1685
|
facebook::react::KeyEvent event;
|
|
@@ -1668,7 +1688,12 @@ void ViewComponentView::OnKeyDown(
|
|
|
1668
1688
|
event.altKey = fAlt;
|
|
1669
1689
|
event.metaKey = fMeta;
|
|
1670
1690
|
|
|
1671
|
-
event.key = ::Microsoft::ReactNative::FromVirtualKey(
|
|
1691
|
+
event.key = ::Microsoft::ReactNative::FromVirtualKey(
|
|
1692
|
+
args.Key(),
|
|
1693
|
+
event.shiftKey,
|
|
1694
|
+
!!((source.GetKeyState(winrt::Windows::System::VirtualKey::CapitalLock) &
|
|
1695
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Locked) ==
|
|
1696
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Locked));
|
|
1672
1697
|
event.code = eventCode;
|
|
1673
1698
|
m_eventEmitter->onKeyDown(event);
|
|
1674
1699
|
}
|
|
@@ -1689,16 +1714,20 @@ void ViewComponentView::OnKeyUp(
|
|
|
1689
1714
|
const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
|
|
1690
1715
|
const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
|
|
1691
1716
|
auto eventCode = CodeFromVirtualKey(source, args.Key());
|
|
1692
|
-
bool fShift =
|
|
1693
|
-
winrt::Windows::
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
bool
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1717
|
+
bool fShift =
|
|
1718
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::Shift) &
|
|
1719
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
1720
|
+
bool fAlt =
|
|
1721
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::Menu) &
|
|
1722
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
1723
|
+
bool fCtrl =
|
|
1724
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::Control) &
|
|
1725
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
1726
|
+
bool fMeta =
|
|
1727
|
+
((source.GetKeyState(winrt::Windows::System::VirtualKey::LeftWindows) &
|
|
1728
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ||
|
|
1729
|
+
((source.GetKeyState(winrt::Windows::System::VirtualKey::RightWindows) &
|
|
1730
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down);
|
|
1702
1731
|
|
|
1703
1732
|
if (args.OriginalSource() == Tag()) {
|
|
1704
1733
|
facebook::react::KeyEvent event;
|
|
@@ -1707,7 +1736,12 @@ void ViewComponentView::OnKeyUp(
|
|
|
1707
1736
|
event.altKey = fAlt;
|
|
1708
1737
|
event.metaKey = fMeta;
|
|
1709
1738
|
|
|
1710
|
-
event.key = ::Microsoft::ReactNative::FromVirtualKey(
|
|
1739
|
+
event.key = ::Microsoft::ReactNative::FromVirtualKey(
|
|
1740
|
+
args.Key(),
|
|
1741
|
+
event.shiftKey,
|
|
1742
|
+
!!((source.GetKeyState(winrt::Windows::System::VirtualKey::CapitalLock) &
|
|
1743
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ==
|
|
1744
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down));
|
|
1711
1745
|
event.code = eventCode;
|
|
1712
1746
|
m_eventEmitter->onKeyUp(event);
|
|
1713
1747
|
}
|
|
@@ -168,7 +168,11 @@ struct ComponentView
|
|
|
168
168
|
std::array<winrt::Microsoft::ReactNative::Composition::Experimental::ISpriteVisual, SpecialBorderLayerCount>
|
|
169
169
|
FindSpecialBorderLayers() const noexcept;
|
|
170
170
|
void UpdateCenterPropertySet() noexcept;
|
|
171
|
+
void FinalizeTransform(
|
|
172
|
+
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
173
|
+
const facebook::react::ViewProps &viewProps) noexcept;
|
|
171
174
|
|
|
175
|
+
bool m_FinalizeTransform{false};
|
|
172
176
|
ComponentViewFeatures m_flags;
|
|
173
177
|
void showFocusVisual(bool show) noexcept;
|
|
174
178
|
winrt::Microsoft::ReactNative::Composition::Experimental::IFocusVisual m_focusVisual{nullptr};
|
|
@@ -30,9 +30,9 @@ extern "C" HRESULT WINAPI WICCreateImagingFactory_Proxy(UINT SDKVersion, IWICIma
|
|
|
30
30
|
|
|
31
31
|
namespace winrt::Microsoft::ReactNative::Composition::implementation {
|
|
32
32
|
|
|
33
|
-
ImageComponentView::WindowsImageResponseObserver::WindowsImageResponseObserver(
|
|
34
|
-
|
|
35
|
-
}
|
|
33
|
+
ImageComponentView::WindowsImageResponseObserver::WindowsImageResponseObserver(
|
|
34
|
+
winrt::weak_ref<winrt::Microsoft::ReactNative::Composition::implementation::ImageComponentView> wkImage)
|
|
35
|
+
: m_wkImage(std::move(wkImage)) {}
|
|
36
36
|
|
|
37
37
|
void ImageComponentView::WindowsImageResponseObserver::didReceiveProgress(float progress) const {
|
|
38
38
|
// TODO progress?
|
|
@@ -40,13 +40,20 @@ void ImageComponentView::WindowsImageResponseObserver::didReceiveProgress(float
|
|
|
40
40
|
|
|
41
41
|
void ImageComponentView::WindowsImageResponseObserver::didReceiveImage(
|
|
42
42
|
facebook::react::ImageResponse const &imageResponse) const {
|
|
43
|
-
auto
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
if (auto imgComponentView{m_wkImage.get()}) {
|
|
44
|
+
auto imageResponseImage = std::static_pointer_cast<ImageResponseImage>(imageResponse.getImage());
|
|
45
|
+
imgComponentView->m_reactContext.UIDispatcher().Post([imageResponseImage, wkImage = m_wkImage]() {
|
|
46
|
+
if (auto image{wkImage.get()}) {
|
|
47
|
+
image->didReceiveImage(imageResponseImage);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
46
51
|
}
|
|
47
52
|
|
|
48
53
|
void ImageComponentView::WindowsImageResponseObserver::didReceiveFailure() const {
|
|
49
|
-
|
|
54
|
+
if (auto imgComponentView{m_wkImage.get()}) {
|
|
55
|
+
imgComponentView->didReceiveFailureFromObserver();
|
|
56
|
+
}
|
|
50
57
|
}
|
|
51
58
|
|
|
52
59
|
facebook::react::SharedViewProps ImageComponentView::defaultProps() noexcept {
|
|
@@ -142,14 +149,7 @@ void ImageComponentView::updateState(
|
|
|
142
149
|
auto newImageState = std::static_pointer_cast<facebook::react::ImageShadowNode::ConcreteState const>(state);
|
|
143
150
|
|
|
144
151
|
if (!m_imageResponseObserver) {
|
|
145
|
-
|
|
146
|
-
std::shared_ptr<::Microsoft::ReactNative::FabricUIManager> fabricuiManager =
|
|
147
|
-
::Microsoft::ReactNative::FabricUIManager::FromProperties(m_reactContext.Properties());
|
|
148
|
-
auto componentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(m_tag);
|
|
149
|
-
|
|
150
|
-
m_imageResponseObserver = std::make_shared<WindowsImageResponseObserver>(
|
|
151
|
-
*componentViewDescriptor.view
|
|
152
|
-
.as<winrt::Microsoft::ReactNative::Composition::implementation::ImageComponentView>());
|
|
152
|
+
m_imageResponseObserver = std::make_shared<WindowsImageResponseObserver>(get_weak());
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
setStateAndResubscribeImageResponseObserver(newImageState);
|
|
@@ -178,6 +178,10 @@ void ImageComponentView::setStateAndResubscribeImageResponseObserver(
|
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
+
void ImageComponentView::prepareForRecycle() noexcept {
|
|
182
|
+
setStateAndResubscribeImageResponseObserver(nullptr);
|
|
183
|
+
}
|
|
184
|
+
|
|
181
185
|
winrt::Microsoft::ReactNative::ImageProps ImageComponentView::ImageProps() noexcept {
|
|
182
186
|
// We do not currently support custom ImageComponentView's
|
|
183
187
|
// If we did we would need to create a AbiImageProps and possibly return them here
|
|
@@ -47,6 +47,7 @@ struct ImageComponentView : ImageComponentViewT<ImageComponentView, ViewComponen
|
|
|
47
47
|
override;
|
|
48
48
|
void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
|
|
49
49
|
override;
|
|
50
|
+
void prepareForRecycle() noexcept override;
|
|
50
51
|
void OnRenderingDeviceLost() noexcept override;
|
|
51
52
|
void onThemeChanged() noexcept override;
|
|
52
53
|
|
|
@@ -69,13 +70,14 @@ struct ImageComponentView : ImageComponentViewT<ImageComponentView, ViewComponen
|
|
|
69
70
|
private:
|
|
70
71
|
struct WindowsImageResponseObserver : facebook::react::ImageResponseObserver {
|
|
71
72
|
public:
|
|
72
|
-
WindowsImageResponseObserver(
|
|
73
|
+
WindowsImageResponseObserver(
|
|
74
|
+
winrt::weak_ref<winrt::Microsoft::ReactNative::Composition::implementation::ImageComponentView> wkImage);
|
|
73
75
|
void didReceiveProgress(float progress) const override;
|
|
74
76
|
void didReceiveImage(facebook::react::ImageResponse const &imageResponse) const override;
|
|
75
77
|
void didReceiveFailure() const override;
|
|
76
78
|
|
|
77
79
|
private:
|
|
78
|
-
winrt::
|
|
80
|
+
winrt::weak_ref<winrt::Microsoft::ReactNative::Composition::implementation::ImageComponentView> m_wkImage;
|
|
79
81
|
};
|
|
80
82
|
|
|
81
83
|
void ensureDrawingSurface() noexcept;
|
|
@@ -65,13 +65,14 @@ struct ScrollBarComponent {
|
|
|
65
65
|
|
|
66
66
|
updateShy(true);
|
|
67
67
|
onScaleChanged();
|
|
68
|
-
|
|
68
|
+
UpdateColorForScrollBarRegions();
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
void
|
|
71
|
+
void UpdateColorForScrollBarRegions() noexcept {
|
|
72
72
|
updateHighlight(ScrollbarHitRegion::ArrowFirst);
|
|
73
73
|
updateHighlight(ScrollbarHitRegion::ArrowLast);
|
|
74
74
|
updateHighlight(ScrollbarHitRegion::Thumb);
|
|
75
|
+
|
|
75
76
|
m_trackVisual.Brush(
|
|
76
77
|
winrt::get_self<winrt::Microsoft::ReactNative::Composition::implementation::Theme>(m_outer.Theme())
|
|
77
78
|
->InternalPlatformBrush(L"ScrollBarTrackFill"));
|
|
@@ -726,6 +727,14 @@ void ScrollViewComponentView::updateProps(
|
|
|
726
727
|
|
|
727
728
|
// update BaseComponentView props
|
|
728
729
|
base_type::updateProps(props, oldProps);
|
|
730
|
+
|
|
731
|
+
// Update the color only after updating the m_props in BaseComponentView
|
|
732
|
+
// to avoid scrollbarcomponents reading outdated scrollEnabled value.
|
|
733
|
+
if (!oldProps || oldViewProps.scrollEnabled != newViewProps.scrollEnabled) {
|
|
734
|
+
m_scrollVisual.ScrollEnabled(newViewProps.scrollEnabled);
|
|
735
|
+
m_horizontalScrollbarComponent->UpdateColorForScrollBarRegions();
|
|
736
|
+
m_verticalScrollbarComponent->UpdateColorForScrollBarRegions();
|
|
737
|
+
}
|
|
729
738
|
}
|
|
730
739
|
|
|
731
740
|
void ScrollViewComponentView::updateState(
|
|
@@ -825,8 +834,8 @@ void ScrollViewComponentView::OnPointerDown(const winrt::Windows::UI::Input::Poi
|
|
|
825
834
|
|
|
826
835
|
void ScrollViewComponentView::onThemeChanged() noexcept {
|
|
827
836
|
updateBackgroundColor(std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->backgroundColor);
|
|
828
|
-
m_verticalScrollbarComponent->
|
|
829
|
-
m_horizontalScrollbarComponent->
|
|
837
|
+
m_verticalScrollbarComponent->UpdateColorForScrollBarRegions();
|
|
838
|
+
m_horizontalScrollbarComponent->UpdateColorForScrollBarRegions();
|
|
830
839
|
Super::onThemeChanged();
|
|
831
840
|
}
|
|
832
841
|
|
|
@@ -919,6 +928,10 @@ void ScrollViewComponentView::OnKeyDown(
|
|
|
919
928
|
}
|
|
920
929
|
|
|
921
930
|
bool ScrollViewComponentView::scrollToEnd(bool animate) noexcept {
|
|
931
|
+
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
932
|
+
return false;
|
|
933
|
+
}
|
|
934
|
+
|
|
922
935
|
if ((((m_contentSize.height - m_layoutMetrics.frame.size.height) * m_layoutMetrics.pointScaleFactor) -
|
|
923
936
|
m_scrollVisual.ScrollPosition().y) < 1.0f) {
|
|
924
937
|
return false;
|
|
@@ -931,6 +944,10 @@ bool ScrollViewComponentView::scrollToEnd(bool animate) noexcept {
|
|
|
931
944
|
}
|
|
932
945
|
|
|
933
946
|
bool ScrollViewComponentView::scrollToStart(bool animate) noexcept {
|
|
947
|
+
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
948
|
+
return false;
|
|
949
|
+
}
|
|
950
|
+
|
|
934
951
|
m_scrollVisual.TryUpdatePosition({0.0f, 0.0f, 0.0f}, animate);
|
|
935
952
|
return true;
|
|
936
953
|
}
|
|
@@ -960,6 +977,10 @@ bool ScrollViewComponentView::lineRight(bool animate) noexcept {
|
|
|
960
977
|
}
|
|
961
978
|
|
|
962
979
|
bool ScrollViewComponentView::scrollDown(float delta, bool animate) noexcept {
|
|
980
|
+
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
981
|
+
return false;
|
|
982
|
+
}
|
|
983
|
+
|
|
963
984
|
if (((m_contentSize.height - m_layoutMetrics.frame.size.height) * m_layoutMetrics.pointScaleFactor) -
|
|
964
985
|
m_scrollVisual.ScrollPosition().y <
|
|
965
986
|
1.0f) {
|
|
@@ -971,6 +992,10 @@ bool ScrollViewComponentView::scrollDown(float delta, bool animate) noexcept {
|
|
|
971
992
|
}
|
|
972
993
|
|
|
973
994
|
bool ScrollViewComponentView::scrollUp(float delta, bool animate) noexcept {
|
|
995
|
+
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
996
|
+
return false;
|
|
997
|
+
}
|
|
998
|
+
|
|
974
999
|
if (m_scrollVisual.ScrollPosition().y <= 0.0f) {
|
|
975
1000
|
return false;
|
|
976
1001
|
}
|
|
@@ -980,6 +1005,10 @@ bool ScrollViewComponentView::scrollUp(float delta, bool animate) noexcept {
|
|
|
980
1005
|
}
|
|
981
1006
|
|
|
982
1007
|
bool ScrollViewComponentView::scrollLeft(float delta, bool animate) noexcept {
|
|
1008
|
+
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
1009
|
+
return false;
|
|
1010
|
+
}
|
|
1011
|
+
|
|
983
1012
|
if (m_scrollVisual.ScrollPosition().x <= 0.0f) {
|
|
984
1013
|
return false;
|
|
985
1014
|
}
|
|
@@ -989,6 +1018,10 @@ bool ScrollViewComponentView::scrollLeft(float delta, bool animate) noexcept {
|
|
|
989
1018
|
}
|
|
990
1019
|
|
|
991
1020
|
bool ScrollViewComponentView::scrollRight(float delta, bool animate) noexcept {
|
|
1021
|
+
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
1022
|
+
return false;
|
|
1023
|
+
}
|
|
1024
|
+
|
|
992
1025
|
if (((m_contentSize.width - m_layoutMetrics.frame.size.width) * m_layoutMetrics.pointScaleFactor) -
|
|
993
1026
|
m_scrollVisual.ScrollPosition().x <
|
|
994
1027
|
1.0f) {
|
|
@@ -1025,6 +1058,10 @@ void ScrollViewComponentView::HandleCommand(
|
|
|
1025
1058
|
}
|
|
1026
1059
|
|
|
1027
1060
|
void ScrollViewComponentView::scrollTo(winrt::Windows::Foundation::Numerics::float3 offset, bool animate) noexcept {
|
|
1061
|
+
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
1062
|
+
return;
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1028
1065
|
m_scrollVisual.TryUpdatePosition(offset, animate);
|
|
1029
1066
|
}
|
|
1030
1067
|
|
|
@@ -1097,7 +1134,7 @@ void ScrollViewComponentView::StartBringIntoView(
|
|
|
1097
1134
|
scrollToHorizontal = options.TargetRect->getMidX() - (viewerWidth * options.HorizontalAlignmentRatio);
|
|
1098
1135
|
}
|
|
1099
1136
|
|
|
1100
|
-
if (needsScroll) {
|
|
1137
|
+
if (needsScroll && std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
1101
1138
|
m_scrollVisual.TryUpdatePosition(
|
|
1102
1139
|
{static_cast<float>(scrollToHorizontal), static_cast<float>(scrollToVertical), 0.0f}, options.AnimationDesired);
|
|
1103
1140
|
}
|
package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
#include <Utils/ValueUtils.h>
|
|
12
12
|
#include <tom.h>
|
|
13
13
|
#include <unicode.h>
|
|
14
|
+
#include <winrt/Microsoft.UI.Input.h>
|
|
14
15
|
#include <winrt/Windows.System.h>
|
|
15
16
|
#include <winrt/Windows.UI.h>
|
|
16
17
|
#include "../CompositionHelpers.h"
|
|
@@ -754,8 +755,8 @@ void WindowsTextInputComponentView::OnKeyDown(
|
|
|
754
755
|
// Do not forward tab keys into the TextInput, since we want that to do the tab loop instead. This aligns with WinUI
|
|
755
756
|
// behavior We do forward Ctrl+Tab to the textinput.
|
|
756
757
|
if (args.Key() != winrt::Windows::System::VirtualKey::Tab ||
|
|
757
|
-
source.GetKeyState(winrt::Windows::System::VirtualKey::Control)
|
|
758
|
-
|
|
758
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::Control) &
|
|
759
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down) {
|
|
759
760
|
WPARAM wParam = static_cast<WPARAM>(args.Key());
|
|
760
761
|
LPARAM lParam = 0;
|
|
761
762
|
lParam = args.KeyStatus().RepeatCount; // bits 0-15
|
|
@@ -784,8 +785,8 @@ void WindowsTextInputComponentView::OnKeyUp(
|
|
|
784
785
|
// Do not forward tab keys into the TextInput, since we want that to do the tab loop instead. This aligns with WinUI
|
|
785
786
|
// behavior We do forward Ctrl+Tab to the textinput.
|
|
786
787
|
if (args.Key() != winrt::Windows::System::VirtualKey::Tab ||
|
|
787
|
-
source.GetKeyState(winrt::Windows::System::VirtualKey::Control)
|
|
788
|
-
|
|
788
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::Control) &
|
|
789
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down) {
|
|
789
790
|
WPARAM wParam = static_cast<WPARAM>(args.Key());
|
|
790
791
|
LPARAM lParam = 1;
|
|
791
792
|
lParam = args.KeyStatus().RepeatCount; // bits 0-15
|
|
@@ -823,16 +824,21 @@ bool WindowsTextInputComponentView::ShouldSubmit(
|
|
|
823
824
|
// If 'submitKeyEvents' are supplied, use them to determine whether to emit onSubmitEditing' for either
|
|
824
825
|
// single-line or multi-line TextInput
|
|
825
826
|
if (args.KeyCode() == '\r') {
|
|
826
|
-
bool shiftDown = source.GetKeyState(winrt::Windows::System::VirtualKey::Shift)
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
winrt::
|
|
832
|
-
bool
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
827
|
+
bool shiftDown = (source.GetKeyState(winrt::Windows::System::VirtualKey::Shift) &
|
|
828
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ==
|
|
829
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
830
|
+
bool ctrlDown = (source.GetKeyState(winrt::Windows::System::VirtualKey::Control) &
|
|
831
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ==
|
|
832
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
833
|
+
bool altDown = (source.GetKeyState(winrt::Windows::System::VirtualKey::Control) &
|
|
834
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ==
|
|
835
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
836
|
+
bool metaDown = (source.GetKeyState(winrt::Windows::System::VirtualKey::LeftWindows) &
|
|
837
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ==
|
|
838
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down ||
|
|
839
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::RightWindows) &
|
|
840
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ==
|
|
841
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
836
842
|
return (submitKeyEvent.shiftKey && shiftDown) || (submitKeyEvent.ctrlKey && ctrlDown) ||
|
|
837
843
|
(submitKeyEvent.altKey && altDown) || (submitKeyEvent.metaKey && metaDown) ||
|
|
838
844
|
(!submitKeyEvent.shiftKey && !submitKeyEvent.altKey && !submitKeyEvent.metaKey && !submitKeyEvent.altKey &&
|
|
@@ -853,8 +859,8 @@ void WindowsTextInputComponentView::OnCharacterReceived(
|
|
|
853
859
|
// Do not forward tab keys into the TextInput, since we want that to do the tab loop instead. This aligns with WinUI
|
|
854
860
|
// behavior We do forward Ctrl+Tab to the textinput.
|
|
855
861
|
if ((args.KeyCode() == '\t') &&
|
|
856
|
-
(source.GetKeyState(winrt::Windows::System::VirtualKey::Control)
|
|
857
|
-
|
|
862
|
+
((source.GetKeyState(winrt::Windows::System::VirtualKey::Control) &
|
|
863
|
+
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) != winrt::Microsoft::UI::Input::VirtualKeyStates::Down)) {
|
|
858
864
|
return;
|
|
859
865
|
}
|
|
860
866
|
|
|
@@ -194,7 +194,17 @@ void FabricUIManager::constraintSurfaceLayout(
|
|
|
194
194
|
m_surfaceManager->constraintSurfaceLayout(surfaceId, layoutConstraints, layoutContext);
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
-
|
|
197
|
+
winrt::Microsoft::ReactNative::ReactNotificationId<facebook::react::SurfaceId>
|
|
198
|
+
FabricUIManager::NotifyMountedId() noexcept {
|
|
199
|
+
return {L"ReactNative.Fabric", L"Mounted"};
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
void FabricUIManager::didMountComponentsWithRootTag(facebook::react::SurfaceId surfaceId) noexcept {
|
|
203
|
+
m_context.UIDispatcher().Post([context = m_context, self = shared_from_this(), surfaceId]() {
|
|
204
|
+
self->m_scheduler->reportMount(surfaceId);
|
|
205
|
+
context.Notifications().SendNotification(NotifyMountedId(), surfaceId);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
198
208
|
|
|
199
209
|
void FabricUIManager::RCTPerformMountInstructions(
|
|
200
210
|
facebook::react::ShadowViewMutationList const &mutations,
|
|
@@ -212,11 +222,25 @@ void FabricUIManager::RCTPerformMountInstructions(
|
|
|
212
222
|
}
|
|
213
223
|
|
|
214
224
|
case facebook::react::ShadowViewMutation::Delete: {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
225
|
+
// #define DETECT_COMPONENT_OUTLIVE_DELETE_MUTATION
|
|
226
|
+
#ifdef DETECT_COMPONENT_OUTLIVE_DELETE_MUTATION
|
|
227
|
+
winrt::weak_ref<winrt::Microsoft::ReactNative::ComponentView> wkView;
|
|
228
|
+
#endif
|
|
229
|
+
{
|
|
230
|
+
auto &oldChildShadowView = mutation.oldChildShadowView;
|
|
231
|
+
auto &oldChildViewDescriptor = m_registry.componentViewDescriptorWithTag(oldChildShadowView.tag);
|
|
232
|
+
// observerCoordinator.unregisterViewComponentDescriptor(oldChildViewDescriptor, surfaceId);
|
|
233
|
+
#ifdef DETECT_COMPONENT_OUTLIVE_DELETE_MUTATION
|
|
234
|
+
wkView = winrt::make_weak(oldChildViewDescriptor.view);
|
|
235
|
+
#endif
|
|
236
|
+
m_registry.enqueueComponentViewWithComponentHandle(
|
|
237
|
+
oldChildShadowView.componentHandle, oldChildShadowView.tag, oldChildViewDescriptor);
|
|
238
|
+
}
|
|
239
|
+
#ifdef DETECT_COMPONENT_OUTLIVE_DELETE_MUTATION
|
|
240
|
+
// After handling a delete mutation, nothing should be holding on to the view. If there is thats an indication
|
|
241
|
+
// of a leak, or at least something holding on to a view longer than it should
|
|
242
|
+
assert(!wkView.get());
|
|
243
|
+
#endif
|
|
220
244
|
break;
|
|
221
245
|
}
|
|
222
246
|
|
|
@@ -52,6 +52,8 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
|
|
|
52
52
|
winrt::Microsoft::ReactNative::ReactNativeIsland GetReactNativeIsland(
|
|
53
53
|
facebook::react::SurfaceId surfaceId) const noexcept;
|
|
54
54
|
|
|
55
|
+
static winrt::Microsoft::ReactNative::ReactNotificationId<facebook::react::SurfaceId> NotifyMountedId() noexcept;
|
|
56
|
+
|
|
55
57
|
private:
|
|
56
58
|
void installFabricUIManager() noexcept;
|
|
57
59
|
void initiateTransaction(facebook::react::MountingCoordinator::Shared mountingCoordinator);
|
|
@@ -337,7 +337,7 @@ void ReactInstanceWin::LoadModules(
|
|
|
337
337
|
};
|
|
338
338
|
|
|
339
339
|
#ifdef USE_FABRIC
|
|
340
|
-
if (
|
|
340
|
+
if (Microsoft::ReactNative::IsFabricEnabled(m_reactContext->Properties())) {
|
|
341
341
|
registerTurboModule(
|
|
342
342
|
L"FabricUIManagerBinding",
|
|
343
343
|
winrt::Microsoft::ReactNative::MakeModuleProvider<::Microsoft::ReactNative::FabricUIManager>());
|
|
@@ -602,7 +602,8 @@ void ReactInstanceWin::InitializeBridgeless() noexcept {
|
|
|
602
602
|
|
|
603
603
|
m_jsMessageThread.Load()->runOnQueueSync([&]() {
|
|
604
604
|
::SetThreadDescription(GetCurrentThread(), L"React-Native JavaScript Thread");
|
|
605
|
-
auto timerRegistry =
|
|
605
|
+
auto timerRegistry =
|
|
606
|
+
::Microsoft::ReactNative::TimerRegistry::CreateTimerRegistry(m_reactContext->Properties());
|
|
606
607
|
auto timerRegistryRaw = timerRegistry.get();
|
|
607
608
|
|
|
608
609
|
auto timerManager = std::make_shared<facebook::react::TimerManager>(std::move(timerRegistry));
|
|
@@ -24,6 +24,16 @@
|
|
|
24
24
|
"Microsoft.SourceLink.Common": "1.1.1"
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
|
+
"Microsoft.SourceLink.GitHub": {
|
|
28
|
+
"type": "Direct",
|
|
29
|
+
"requested": "[1.1.1, )",
|
|
30
|
+
"resolved": "1.1.1",
|
|
31
|
+
"contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==",
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"Microsoft.Build.Tasks.Git": "1.1.1",
|
|
34
|
+
"Microsoft.SourceLink.Common": "1.1.1"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
27
37
|
"Microsoft.Windows.CppWinRT": {
|
|
28
38
|
"type": "Direct",
|
|
29
39
|
"requested": "[2.0.230706.1, )",
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
3
|
+
|
|
4
|
+
<PropertyGroup Label="Globals">
|
|
5
|
+
</PropertyGroup>
|
|
6
|
+
|
|
7
|
+
<PropertyGroup Label="Configuration">
|
|
8
|
+
</PropertyGroup>
|
|
9
|
+
|
|
10
|
+
<ItemDefinitionGroup>
|
|
11
|
+
</ItemDefinitionGroup>
|
|
12
|
+
|
|
13
|
+
</Project>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
3
|
+
|
|
4
|
+
<PropertyGroup Label="Globals">
|
|
5
|
+
</PropertyGroup>
|
|
6
|
+
|
|
7
|
+
<PropertyGroup Label="Configuration">
|
|
8
|
+
</PropertyGroup>
|
|
9
|
+
|
|
10
|
+
<ItemDefinitionGroup>
|
|
11
|
+
</ItemDefinitionGroup>
|
|
12
|
+
|
|
13
|
+
</Project>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
3
|
+
|
|
4
|
+
<PropertyGroup Label="Globals">
|
|
5
|
+
</PropertyGroup>
|
|
6
|
+
|
|
7
|
+
<PropertyGroup Label="Configuration">
|
|
8
|
+
</PropertyGroup>
|
|
9
|
+
|
|
10
|
+
<ItemDefinitionGroup>
|
|
11
|
+
</ItemDefinitionGroup>
|
|
12
|
+
|
|
13
|
+
</Project>
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
-->
|
|
11
11
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
12
12
|
<PropertyGroup>
|
|
13
|
-
<ReactNativeWindowsVersion>0.74.
|
|
13
|
+
<ReactNativeWindowsVersion>0.74.13</ReactNativeWindowsVersion>
|
|
14
14
|
<ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
|
|
15
15
|
<ReactNativeWindowsMinor>74</ReactNativeWindowsMinor>
|
|
16
|
-
<ReactNativeWindowsPatch>
|
|
16
|
+
<ReactNativeWindowsPatch>13</ReactNativeWindowsPatch>
|
|
17
17
|
<ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
|
|
18
|
-
<ReactNativeWindowsCommitId>
|
|
18
|
+
<ReactNativeWindowsCommitId>de774bb0e1c5557cc96566c810e65decc7182859</ReactNativeWindowsCommitId>
|
|
19
19
|
</PropertyGroup>
|
|
20
20
|
</Project>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<!-- Enabling this will (1) Include hermes glues in the Microsoft.ReactNative binaries AND (2) Make hermes the default engine -->
|
|
7
7
|
<UseHermes Condition="'$(UseHermes)' == ''">true</UseHermes>
|
|
8
8
|
<!-- This will be true if (1) the client want to use hermes by setting UseHermes to true OR (2) We are building for UWP where dynamic switching is enabled -->
|
|
9
|
-
<HermesVersion Condition="'$(HermesVersion)' == ''">0.1.
|
|
9
|
+
<HermesVersion Condition="'$(HermesVersion)' == ''">0.1.23</HermesVersion>
|
|
10
10
|
<HermesPackage Condition="'$(HermesPackage)' == '' And Exists('$(PkgMicrosoft_JavaScript_Hermes)')">$(PkgMicrosoft_JavaScript_Hermes)</HermesPackage>
|
|
11
11
|
<HermesPackage Condition="'$(HermesPackage)' == ''">$(NuGetPackageRoot)\Microsoft.JavaScript.Hermes\$(HermesVersion)</HermesPackage>
|
|
12
12
|
<EnableHermesInspectorInReleaseFlavor Condition="'$(EnableHermesInspectorInReleaseFlavor)' == ''">false</EnableHermesInspectorInReleaseFlavor>
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
<V8PackageName>ReactNative.V8Jsi.Windows</V8PackageName>
|
|
21
21
|
<V8PackageName Condition="'$(V8AppPlatform)' != 'win32'">$(V8PackageName).UWP</V8PackageName>
|
|
22
22
|
<V8Package>$(NuGetPackageRoot)\$(V8PackageName).$(V8Version)</V8Package>
|
|
23
|
+
<V8Platform Condition="'$(Platform)' == 'ARM64EC'">x64</V8Platform>
|
|
23
24
|
</PropertyGroup>
|
|
24
25
|
|
|
25
26
|
</Project>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
3
|
+
|
|
4
|
+
<PropertyGroup Label="Globals">
|
|
5
|
+
</PropertyGroup>
|
|
6
|
+
|
|
7
|
+
<PropertyGroup Label="Configuration">
|
|
8
|
+
</PropertyGroup>
|
|
9
|
+
|
|
10
|
+
<ItemDefinitionGroup>
|
|
11
|
+
</ItemDefinitionGroup>
|
|
12
|
+
|
|
13
|
+
</Project>
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
<Configuration>Debug</Configuration>
|
|
17
17
|
<Platform>ARM64</Platform>
|
|
18
18
|
</ProjectConfiguration>
|
|
19
|
+
<ProjectConfiguration Include="Debug|ARM64EC">
|
|
20
|
+
<Configuration>Debug</Configuration>
|
|
21
|
+
<Platform>ARM64EC</Platform>
|
|
22
|
+
</ProjectConfiguration>
|
|
19
23
|
<ProjectConfiguration Include="Release|ARM64">
|
|
20
24
|
<Configuration>Release</Configuration>
|
|
21
25
|
<Platform>ARM64</Platform>
|
|
@@ -24,6 +28,10 @@
|
|
|
24
28
|
<Configuration>Debug</Configuration>
|
|
25
29
|
<Platform>x64</Platform>
|
|
26
30
|
</ProjectConfiguration>
|
|
31
|
+
<ProjectConfiguration Include="Release|ARM64EC">
|
|
32
|
+
<Configuration>Release</Configuration>
|
|
33
|
+
<Platform>ARM64EC</Platform>
|
|
34
|
+
</ProjectConfiguration>
|
|
27
35
|
<ProjectConfiguration Include="Release|x64">
|
|
28
36
|
<Configuration>Release</Configuration>
|
|
29
37
|
<Platform>x64</Platform>
|
|
@@ -251,4 +259,4 @@
|
|
|
251
259
|
<Copy DestinationFiles="@(NodeApiJsiFiles->'$(ReactNativeDir)\ReactCommon\jsi\%(RecursiveDir)%(Filename)%(Extension)')" SourceFiles="@(NodeApiJsiFiles)" />
|
|
252
260
|
<Copy DestinationFiles="@(TemporaryReactCommonPatchFiles->'$(ReactNativeDir)\ReactCommon\%(RecursiveDir)%(Filename)%(Extension)')" SourceFiles="@(TemporaryReactCommonPatchFiles)" />
|
|
253
261
|
</Target>
|
|
254
|
-
</Project>
|
|
262
|
+
</Project>
|
|
@@ -117,18 +117,12 @@
|
|
|
117
117
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsiexecutor\jsireact\JSINativeModules.cpp">
|
|
118
118
|
<Filter>jsiexecutor\jsireact</Filter>
|
|
119
119
|
</ClCompile>
|
|
120
|
-
<ClCompile Include="$(YogaDir)\yoga\Utils.cpp">
|
|
121
|
-
<Filter>yoga</Filter>
|
|
122
|
-
</ClCompile>
|
|
123
120
|
<ClCompile Include="$(YogaDir)\yoga\YGConfig.cpp">
|
|
124
121
|
<Filter>yoga</Filter>
|
|
125
122
|
</ClCompile>
|
|
126
123
|
<ClCompile Include="$(YogaDir)\yoga\YGEnums.cpp">
|
|
127
124
|
<Filter>yoga</Filter>
|
|
128
125
|
</ClCompile>
|
|
129
|
-
<ClCompile Include="$(YogaDir)\yoga\YGLayout.cpp">
|
|
130
|
-
<Filter>yoga</Filter>
|
|
131
|
-
</ClCompile>
|
|
132
126
|
<ClCompile Include="$(YogaDir)\yoga\YGNode.cpp">
|
|
133
127
|
<Filter>yoga</Filter>
|
|
134
128
|
</ClCompile>
|
|
@@ -138,9 +132,6 @@
|
|
|
138
132
|
<ClCompile Include="$(YogaDir)\yoga\YGNodeStyle.cpp">
|
|
139
133
|
<Filter>yoga</Filter>
|
|
140
134
|
</ClCompile>
|
|
141
|
-
<ClCompile Include="$(YogaDir)\yoga\YGNodePrint.cpp">
|
|
142
|
-
<Filter>yoga</Filter>
|
|
143
|
-
</ClCompile>
|
|
144
135
|
<ClCompile Include="$(YogaDir)\yoga\YGPixelGrid.cpp">
|
|
145
136
|
<Filter>yoga</Filter>
|
|
146
137
|
</ClCompile>
|
|
@@ -156,9 +147,6 @@
|
|
|
156
147
|
<ClCompile Include="$(YogaDir)\yoga\YGValue.cpp">
|
|
157
148
|
<Filter>yoga</Filter>
|
|
158
149
|
</ClCompile>
|
|
159
|
-
<ClCompile Include="$(YogaDir)\yoga\log.cpp">
|
|
160
|
-
<Filter>yoga</Filter>
|
|
161
|
-
</ClCompile>
|
|
162
150
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleBinding.cpp">
|
|
163
151
|
<Filter>turbomodule\core</Filter>
|
|
164
152
|
</ClCompile>
|
|
@@ -208,6 +196,18 @@
|
|
|
208
196
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\telemetry\TransactionTelemetry.cpp">
|
|
209
197
|
<Filter>react\renderer\telemetry</Filter>
|
|
210
198
|
</ClCompile>
|
|
199
|
+
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\InspectorInterfaces.cpp" />
|
|
200
|
+
<ClCompile Include="$(YogaDir)\yoga\algorithm\AbsoluteLayout.cpp" />
|
|
201
|
+
<ClCompile Include="$(YogaDir)\yoga\algorithm\Baseline.cpp" />
|
|
202
|
+
<ClCompile Include="$(YogaDir)\yoga\algorithm\Cache.cpp" />
|
|
203
|
+
<ClCompile Include="$(YogaDir)\yoga\algorithm\CalculateLayout.cpp" />
|
|
204
|
+
<ClCompile Include="$(YogaDir)\yoga\algorithm\FlexLine.cpp" />
|
|
205
|
+
<ClCompile Include="$(YogaDir)\yoga\algorithm\PixelGrid.cpp" />
|
|
206
|
+
<ClCompile Include="$(YogaDir)\yoga\config\Config.cpp" />
|
|
207
|
+
<ClCompile Include="$(YogaDir)\yoga\debug\AssertFatal.cpp" />
|
|
208
|
+
<ClCompile Include="$(YogaDir)\yoga\debug\Log.cpp" />
|
|
209
|
+
<ClCompile Include="$(YogaDir)\yoga\node\LayoutResults.cpp" />
|
|
210
|
+
<ClCompile Include="$(YogaDir)\yoga\node\Node.cpp" />
|
|
211
211
|
</ItemGroup>
|
|
212
212
|
<ItemGroup>
|
|
213
213
|
<ClInclude Include="..\stubs\sys\mman.h">
|
|
@@ -325,5 +325,9 @@
|
|
|
325
325
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\CallbackWrapper.h">
|
|
326
326
|
<Filter>react\bridging</Filter>
|
|
327
327
|
</ClInclude>
|
|
328
|
+
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\InspectorInterfaces.h" />
|
|
329
|
+
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\runtimescheduler\RuntimeScheduler_Legacy.h" />
|
|
330
|
+
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\runtimescheduler\RuntimeScheduler_Modern.h" />
|
|
331
|
+
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\PropsParserContext.h" />
|
|
328
332
|
</ItemGroup>
|
|
329
333
|
</Project>
|
|
@@ -15,25 +15,23 @@
|
|
|
15
15
|
</metadata>
|
|
16
16
|
<files>
|
|
17
17
|
|
|
18
|
-
<file src="$nugetroot$\x86\Debug\React.Windows.Desktop.DLL\react-native-win32.*"
|
|
19
|
-
<file src="$nugetroot$\x64\Debug\React.Windows.Desktop.DLL\react-native-win32.*"
|
|
20
|
-
<file src="$nugetroot$\
|
|
21
|
-
<file src="$nugetroot$\x86\Release\React.Windows.Desktop.DLL\react-native-win32.*"
|
|
22
|
-
<file src="$nugetroot$\x64\Release\React.Windows.Desktop.DLL\react-native-win32.*"
|
|
23
|
-
<file src="$nugetroot$\
|
|
24
|
-
<file src="$nugetroot$\x86\Debug\React.Windows.Desktop\Microsoft.ReactNative.winmd"
|
|
25
|
-
<file src="$nugetroot$\x64\Debug\React.Windows.Desktop\Microsoft.ReactNative.winmd"
|
|
26
|
-
<file src="$nugetroot$\
|
|
27
|
-
<file src="$nugetroot$\x86\Release\React.Windows.Desktop\Microsoft.ReactNative.winmd"
|
|
28
|
-
<file src="$nugetroot$\x64\Release\React.Windows.Desktop\Microsoft.ReactNative.winmd"
|
|
29
|
-
<file src="$nugetroot$\
|
|
18
|
+
<file src="$nugetroot$\x86\Debug\React.Windows.Desktop.DLL\react-native-win32.*" target="lib\debug\x86" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
19
|
+
<file src="$nugetroot$\x64\Debug\React.Windows.Desktop.DLL\react-native-win32.*" target="lib\debug\x64" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
20
|
+
<file src="$nugetroot$\ARM64EC\Debug\React.Windows.Desktop.DLL\react-native-win32.*" target="lib\debug\ARM64EC" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
21
|
+
<file src="$nugetroot$\x86\Release\React.Windows.Desktop.DLL\react-native-win32.*" target="lib\ship\x86" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
22
|
+
<file src="$nugetroot$\x64\Release\React.Windows.Desktop.DLL\react-native-win32.*" target="lib\ship\x64" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
23
|
+
<file src="$nugetroot$\ARM64EC\Release\React.Windows.Desktop.DLL\react-native-win32.*" target="lib\ship\ARM64EC" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
24
|
+
<file src="$nugetroot$\x86\Debug\React.Windows.Desktop\Microsoft.ReactNative.winmd" target="lib\debug\x86"/>
|
|
25
|
+
<file src="$nugetroot$\x64\Debug\React.Windows.Desktop\Microsoft.ReactNative.winmd" target="lib\debug\x64"/>
|
|
26
|
+
<file src="$nugetroot$\ARM64EC\Debug\React.Windows.Desktop\Microsoft.ReactNative.winmd" target="lib\debug\ARM64EC"/>
|
|
27
|
+
<file src="$nugetroot$\x86\Release\React.Windows.Desktop\Microsoft.ReactNative.winmd" target="lib\ship\x86"/>
|
|
28
|
+
<file src="$nugetroot$\x64\Release\React.Windows.Desktop\Microsoft.ReactNative.winmd" target="lib\ship\x64"/>
|
|
29
|
+
<file src="$nugetroot$\ARM64EC\Release\React.Windows.Desktop\Microsoft.ReactNative.winmd" target="lib\ship\ARM64EC"/>
|
|
30
30
|
|
|
31
|
-
<file src="$nugetroot$\x86\Debug\React.Windows.Desktop.Test.DLL\React.Windows.Desktop.Test.**"
|
|
32
|
-
<file src="$nugetroot$\x64\Debug\React.Windows.Desktop.Test.DLL\React.Windows.Desktop.Test.**"
|
|
33
|
-
<file src="$nugetroot$\
|
|
34
|
-
<file src="$nugetroot$\
|
|
35
|
-
<file src="$nugetroot$\x64\Release\React.Windows.Desktop.Test.DLL\React.Windows.Desktop.Test.**" target="lib\ship\x64" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
36
|
-
<file src="$nugetroot$\ARM64\Release\React.Windows.Desktop.Test.DLL\React.Windows.Desktop.Test.**" target="lib\ship\ARM64" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
31
|
+
<file src="$nugetroot$\x86\Debug\React.Windows.Desktop.Test.DLL\React.Windows.Desktop.Test.**" target="lib\debug\x86" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
32
|
+
<file src="$nugetroot$\x64\Debug\React.Windows.Desktop.Test.DLL\React.Windows.Desktop.Test.**" target="lib\debug\x64" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
33
|
+
<file src="$nugetroot$\x86\Release\React.Windows.Desktop.Test.DLL\React.Windows.Desktop.Test.**" target="lib\ship\x86" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
34
|
+
<file src="$nugetroot$\x64\Release\React.Windows.Desktop.Test.DLL\React.Windows.Desktop.Test.**" target="lib\ship\x64" exclude="**\*.iobj;**\*.ipdb;**\*.exp;**\*.ilk" />
|
|
37
35
|
|
|
38
36
|
<file src="$nugetroot$\inc\callinvoker\ReactCommon\CallInvoker.h" target="inc\ReactCommon"/>
|
|
39
37
|
<file src="$nugetroot$\inc\callinvoker\ReactCommon\SchedulerPriority.h" target="inc\ReactCommon"/>
|
|
@@ -16,7 +16,7 @@ If ($PSBoundParameters['Debug']) {
|
|
|
16
16
|
Write-Output "Creating filtered version of : $nuspec"
|
|
17
17
|
$xml = [xml](gc $nuspec)
|
|
18
18
|
|
|
19
|
-
$allSlices = @("x64.Release", "x64.Debug", "x86.Release", "x86.Debug", "ARM64.Release", "ARM64.Debug")
|
|
19
|
+
$allSlices = @("x64.Release", "x64.Debug", "x86.Release", "x86.Debug", "ARM64.Release", "ARM64.Debug", "ARM64EC.Debug", "ARM64EC.Release")
|
|
20
20
|
|
|
21
21
|
$nodesToRemove = @();
|
|
22
22
|
|
package/fmt/fmt.vcxproj
CHANGED
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
<Configuration>Debug</Configuration>
|
|
18
18
|
<Platform>ARM64</Platform>
|
|
19
19
|
</ProjectConfiguration>
|
|
20
|
+
<ProjectConfiguration Include="Debug|ARM64EC">
|
|
21
|
+
<Configuration>Debug</Configuration>
|
|
22
|
+
<Platform>ARM64EC</Platform>
|
|
23
|
+
</ProjectConfiguration>
|
|
20
24
|
<ProjectConfiguration Include="Release|ARM64">
|
|
21
25
|
<Configuration>Release</Configuration>
|
|
22
26
|
<Platform>ARM64</Platform>
|
|
@@ -25,6 +29,10 @@
|
|
|
25
29
|
<Configuration>Debug</Configuration>
|
|
26
30
|
<Platform>x64</Platform>
|
|
27
31
|
</ProjectConfiguration>
|
|
32
|
+
<ProjectConfiguration Include="Release|ARM64EC">
|
|
33
|
+
<Configuration>Release</Configuration>
|
|
34
|
+
<Platform>ARM64EC</Platform>
|
|
35
|
+
</ProjectConfiguration>
|
|
28
36
|
<ProjectConfiguration Include="Release|x64">
|
|
29
37
|
<Configuration>Release</Configuration>
|
|
30
38
|
<Platform>x64</Platform>
|
|
@@ -110,7 +118,7 @@
|
|
|
110
118
|
Retries="10" />
|
|
111
119
|
</Target>
|
|
112
120
|
<Target Name="UnzipFmt" BeforeTargets="PrepareForBuild" DependsOnTargets="DownloadFmt">
|
|
113
|
-
<Message Condition="!Exists('$(FmtDir)src\format.cc')" Importance="High" Text="Unzipping fmt to $([MSBuild]::NormalizePath($(FmtDir)..))."/>
|
|
121
|
+
<Message Condition="!Exists('$(FmtDir)src\format.cc')" Importance="High" Text="Unzipping fmt to $([MSBuild]::NormalizePath($(FmtDir)..))." />
|
|
114
122
|
<Unzip
|
|
115
123
|
Condition="!Exists('$(FmtDir)src\format.cc')"
|
|
116
124
|
SourceFiles="$(FmtZipFile)"
|