Skip to content

5.2.80

Latest
Compare
Choose a tag to compare
@jeromelaban jeromelaban released this 22 Apr 19:48
· 88 commits to release/stable/5.2 since this release
f9c2069

We are proud to announce the .NET ecosystem’s first and only true Single Project solution, empowering developers with a unified approach across all 9 platform targets, spanning mobile, web, desktop, and embedded apps. This genuine Single Project approach simplifies development, accelerates build times, and facilitates platform-specific development, enhancing your productivity and efficiency.

In addition, the 5.2 release also adds:

• Enhanced Skia renderers, with X11 and macOS support for greater performance benefits and simplicity
• Our highly requested multi-window support
• Improvements to Uno.SDK by introducing Uno.SDK Features
• .NET 9 Preview support

This release is our biggest yet, with a record-breaking 2400+ commits—900 more than our last. It was a massive team effort, and we can’t wait for you to experience the improvements and enjoy a smoother, more productive development workflow.

See our blog post for the full announcement.

Community shout Out

Several community members contributed PRs to this release:

Thanks for your contributions!

See below for the full changelog of this release!


Features

  • add NativeOverlappedPresenter support for macOS/Skia host (ffd1bec)
  • adding implicit namespaces (e10ffe3)
  • adding implicit packages (e77cc64)
  • adding support for AOT Generation (772e702)
  • adding support for MacOS and X11 from Skia TFM (284da47)
  • adding support for Single Project (3a85523)
  • Adjust automatic profile selection (d1771aa)
  • Allow freezing of TemplatedParent (6308a3c)
  • enable skia target framework (7e6147d)
  • Ensure that uno.sdk winappsdk apps include all Assets by default (a607d1b)
  • Filter unsupported TargetFrameworks based on current OS (5bfc7de)
  • handle more macOS cursors (0333a70)
  • INativeOverlappedPresenter X11 implementation (acd6433)
  • InteractionTracker pointer wheel support (5769d1e)
  • more complete file/folder pickers for macOS/skia (8bf1f41)
  • Port ScrollView (da22a4c)
  • Provide Intent access for Android pickers (14d4923)
  • provide override to disable default UnoResizetizer Items (aaf452e)
  • Support for TeachingTip control (97e7b29)
  • Support ternary operator and relational operators in ExpressionAnimation (927fed4)
  • Update API surface to WinAppSdk 1.4 (7070d86)
  • Update to WindowsAppSDK 1.5 (deb86f0)
  • composition: IGraphicsEffectD2D1Interop + GraphicsEffectPropertyMapping + EffectType + EffectHelpers (aa7c067)
  • composition: Implement AcrylicBrush! (2ec862b)
  • composition: Implement AlphaMaskEffect and SaturationEffect + Samples + Refactor (aefc389)
  • composition: Implement BlendEffect, CompositeEffect, ColorSourceEffect, and OpacityEffect + Samples (4bf9313)
  • composition: Implement ColorMatrixEffect + Sample + Performance improvements (2f4b39d)
  • composition: Implement CompositionBackdropBrush (260ebeb)
  • composition: Implement ContrastEffect (+ Sample) and ArithmeticCompositeEffect (faf0efd)
  • composition: Implement CrossFadeEffect + Sample (c290e67)
  • composition: Implement DistantDiffuseEffect + Sample (6a153b5)
  • composition: Implement DistantSpecularEffect and SpotDiffuseEffect + Samples (be859be)
  • composition: Implement ExposureEffect + Sample (85b301b)
  • composition: Implement GammaTransferEffect + Sample (57bcce9)
  • composition: Implement grayscale effect + sample (2273c1f)
  • composition: Implement HueRotationEffect and TintEffect + Samples (1b3e7e3)
  • composition: Implement invert effect (82b8084)
  • composition: Implement LuminanceToAlphaEffect and LinearTransferEffect + Samples (3f976ba)
  • composition: Implement property listener/updater for the AcrylicBrush + Refactor (81146cb)
  • composition: Implement SpotSpecularEffect, PointDiffuseEffect, and PointSpecularEffect + Samples (f53b239)
  • composition: Implement TemperatureAndTintEffect + Sample (93643a3)
  • composition: Implement Transform2DEffect, BorderEffect, and SepiaEffect + Samples (429bf99)
  • composition: Implement WhiteNoiseEffect + Sample + Win2D + Refactor (3dc1fc2)
  • composition: Initial work on Composition effects (757dd57)
  • composition: More work on Composition effects + working sample (545004e)
  • composition: re-add ArithmeticCompositeEffect + Docs (a668ad0)
  • Add a simple XAML Playground sample (a4c145a)
  • Add AppWindowChangedEventArgs (8408032)
  • Add AppWindowPresenter (2485330)
  • Add manual tests only filter to Samples app (1ed1e44)
  • Add Microsoft.UI.Windowing enums (e0c850b)
  • add multi-window support for macOS/skia (96f4bbf)
  • Add Skia generic builder (160613b)
  • add support for file pickers in X11 (c6470ae)
  • Add support for PHPicker on iOS (f0e364b)
  • add support for saving files in X11 (d0f78d5)
  • add text-based clipboard for macos/skia (7820457)
  • adding implicit packages (95c3202)
  • adding manifest defaults for WinUI (3a86796)
  • adding support for AOT Generation (a93d4d5)
  • adding support for MacOS and X11 from Skia TFM (4604354)
  • adding support for Single Project (6dcabfa)
  • Allow XAML generator to generate Window types (03ce2fe)
  • automatically load Directory.Build.props & solution-config.props (8ae433e)
  • Basic support for AppWindowPresenters in Android (f907b76)
  • Basic support for AppWindowPresenters in iOS (9f93bb1)
  • Basic support for AppWindowPresenters in macOS (ac121fd)
  • Basic support for AppWindowPresenters in WASM (7361828)
  • DisplayInformation per window (b77ce8e)
  • DisplayInformationExtension per window (55b0d78)
  • enable skia target framework (4ecd345)
  • Enable Window enumeration (f155c3a)
  • FullScreenPresenter and basic OverlappedPresenter support on GTK (abf7212)
  • Implement CompositionAnimation.SetScalarParameter (445b5a3)
  • implement UIElement.ProtectedCursor (66224e2)
  • InteractionTracker (425d528)
  • MacOS/Skia Software-based Renderer (0d238c4)
  • Make playground the default sample, include shortcut (d086f51)
  • Make the sample title selectable (cda8bd9)
  • new skia target for the X Window System (X11) (7e2f586)
  • Open new window button in samples app (7291585)
  • Restore support for C# Hot Reload for XAML for mobile targets (1936fd3)
  • Support accessing CompositionPropertySet in ExpressionAnimation (f16772b)
  • Support Clamp in ExpressionAnimation (2ec9a2d)
  • Support for AppWindow.Closing (3f8a977)
  • Support for FullScreenPresenter (172fd3e)
  • Support for touch/pen input in WPF (bb5b8c0)
  • Support GestureSettings.ManipulationTranslateRails[X|Y] (d98d0c5)
  • Support more types in expression animation binary operators (efa8d60)
  • Support nested properties in ExpressionAnimation (cec4076)
  • Support parameterless CreateExpressionAnimation (546e5d2)
  • WPF OverlappedPresenter support (f7aad84)
  • macOS: remove GTK# / Gtk+ usage from macOS host (6a43ee5)
  • macos/skia: add badge support (8a1e244)
  • skia: Support ElementCompositionPreview.SetIsTranslationEnabled (e8a050d)
  • Unseal Window to allow for custom derived Window types (f64bf1b)
  • XamlIslandRootCollection (aba7251)

Performance Improvements

  • macOS: reduce memory usage of metal backend (be39e47)
  • Avoid capturing lambdas for BindingPropertyHelper.Convert callsites (88e50a5)
  • Avoid HashSet linear search (52fce06)
  • Avoid interpreter transition in SetTargetValueSafe (744f6eb)
  • Avoid LOH allocations in RenderTargetBitmap (a59e39f)
  • Avoid screenshotting twice, and make sure to screenshot samples without a category (7574235)
  • Avoid Task.Delay(500) in snapshot tests (ad728fb)
  • Avoid using Loaded/Unloaded events that uses Delegate.Combine (2363bf7)
  • Correct caching check for reverse enumerator (6c14c9d)
  • Don't use Lazy for Wasm DisplayInformation (00a78ac)
  • Early returns for inherited DP propagation (e421284)
  • Improve Control focus performance (a2e1aab)
  • leverage generic enum getvalues (80462b6)
  • Make _childrenBinable lazy and avoid unnecessary insertions (67e809d)
  • Make AncestorsDictionary a struct (b8a9b0a)
  • Misc Skia performance improvements (86f8e4a)
  • Move Loaded/Unloaded to use OnLoaded/OnUnloaded to avoid delegate combine (50c1e6c)
  • Move to non-generic cache keys for BindingPropertyHelper (ebee122)
  • only create a new XImage when size changes in X11 software rendering (0cc80be)
  • Reduce allocations in ShouldMirrorVisual (eb007ca)
  • reduce layout invalidations when clearing children when there're none (55cce74)
  • Reduce memory used by DependencyPropertyGenerator (326dcc4)
  • Reduce TextBlock SelectionDetails allocations on Skia (2eebfd0)
  • Update IsTextTrimmed lazily on WASM (0bca5fc)
  • use CompositionTarget to only render a specific target (887201b)
  • Use DP.UniqueId as its hash code (da53bec)
  • Use GeneratedDependencyProperty for commonly read properties (99c97ba)
  • combobox: Avoid materializing EditableText unnecessarily (cb728ac)
  • samplesapp: Make sure RefreshContainerPage timers are stopped (ee59ded)

Bug Fixes

  • add error code prefix to cSpell.json (c08aa9d)
  • Add missing TitleBarHeightOption.Collapsed (ea9eb92)
  • Add transitive dependency to Xamarin.AndroidX.SwipeRefreshLayout (eac71fc)
  • adding empty lib resources for Windows10 targets (eab725a)
  • Adjust condition for tf-specific VS debug build (ecfc8f2)
  • Adjust environment name (1de4f68)
  • Adjust framework filtering on implicit builds (5f40c06)
  • Adjust global properties publication (260dd17)
  • Adjust global usings suppression for HR (d7b74e6)
  • Adjust HR interactions with wasm (d2c14b8)
  • Adjust native mac binaries path for packaging (f34f030)
  • Adjust not implemented for PointerWheelChanged (25bd6cb)
  • Adjust profile synch and reload on desktop TF selection (4fd1ffb)
  • Adjust server project cross-targeted build (9d43812)
  • Adjust startup project on forced reload (7043f3d)
  • Adjust target framework order for window (a13e4f5)
  • Adjust the use of EnableCoreMrtTooling in winappsdk libraries (6f3da83)
  • Adjust vs build target framework filtering condition (c7aae14)
  • Avoid closing non-light-dismissable flyouts on Window activation (223faac)
  • Avoid NRE on WebView navigation (f142978)
  • Avoid XAOBS001 in BindableMetadataGenerator (8bb9cf2)
  • copy libUnoNativeMac.dylib into Sample.Skia.Generic app (6847d1a)
  • Correct OriginalSourceLocation for templates (3bc5195)
  • Delay Flyout.Closed to handle edge case of reopening before closed fully (e3a3f6c)
  • DevServer not included for non-runtime version of .NET (14d6b56)
  • Disable C# HR on iOS/Catalyst, use XAML Reader instead (b4acaa0)
  • do no execute platform code outside that platform (7cd6705)
  • do no execute platform code outside that platform (f9221fa)
  • Don't reorder TFMs if the uno vsix is not loaded (a8e576e)
  • Don't specify a AppDesignerFolder for wasm (cf938d9)
  • Don't specify Google Android Material with MAUI Embedding (4f111f9)
  • duplicate condition attributes (388c245)
  • duplicate condition attributes (2183956)
  • Enable HW Accel over RDP for Skia Desktop (40e7807)
  • ensure ContentDialog arrange respects visiblebounds (6f31bfb)
  • Ensure duplicate usings are removed properly (c367000)
  • Ensure XamlRoot is set for resource-loaded elements (8602231)
  • explicit Measure calls should invalidate parents if DesiredSize changes (17220cd)
  • Fix Julian CalendarView not working (afb379b)
  • Fix pointer out not raised when element added above current element (604e67d)
  • Fix StackVector not copying elements over when resizing (1e451ae)
  • Fix System.Type handling with xmlns (22d6e69)
  • fixing issue with Source Generator not recognizing Uno Head (f573aae)
  • Grid Column, Row, ColumnSpan and RowSpan can affect Measure (d3dbd79)
  • improve TextBlock selection chunking (582ceaf)
  • Load and Unload framework elements from resources [Skia,Wasm,Android only] (9d2cab8)
  • Make ExpressionAnimation.Expression non-nullable (90089e5)
  • MessageDialog samples do not work (b280337)
  • Move to rewrite the csproj until vs first-TFM issues are fixed (f6896de)
  • ios: Adjust for duplicate gcparams (9838fa6)
  • ListView: Fix possible null-ref in selection handling (89d757c)
  • add android 30 check (a65e919)
  • Add missing package icon (0e1547e)
  • add new (missing) file (d2b48b2)
  • Adjust CompositionObject.SetProperty equality (f6c5ddd)
  • Adjust iOS min version for using hot reload (b088bbc)
  • Adjust LayoutRound behavior (9064cf5)
  • Avoid using unsupported PackageManger API on Android 33 and newer (7d51931)
  • bring the newly focused element into view on tab (7c544aa)
  • Call the correct base method on ComboBox (eddb848)
  • complete macos/skia pointer/mouse support (90c6d32)
  • Consider clip sub-properties as independent animation (4d07f7a)
  • disable IDE0051 unused member (1ef2462)
  • DropDownPreferredPlacement attached property is not working correctly (b5c11df)
  • Emit UTF8 instead of UTF16 (791db33)
  • Ensure DesiredPlacement and popup Offsets are taken into account in ComboBox (4eeb1db)
  • Ensure license is recognized by GitHub (cdbf0c2)
  • Ensure NavigationStarting is executed reliably on Android (72f03e2)
  • Ensures that Uno projects enable intellisense even if no wasdk project is present (1e36266)
  • Fix button disabled state being overwritten by TemplateBinding (042adef)
  • Fix clipping changes not applying (b84cf4c)
  • Fix DatePicker crashing and not having correct initial date (1035cb0)
  • Fix elements being flagged IsOver=false when capturing pointer (eabfc27)
  • fix hit testing on skia when Canvas.ZIndex is used with non-canvas panels (a47d65f)
  • Fix missing pointer exit on FF when sibling overlaps an overflowing child (a46e2c2)
  • Fix selector item incorrectly going to Normal visual state (a20bd17)
  • Fix style application to consider only explicit style when applying default style (91c3c0b)
  • fix syntax (cdcc349)
  • Fix TreeView not selecting items properly (f6044a2)
  • focus should not bring the focused element into view on WASM (8a9a760)
  • Handle Animations precedence as in WinUI (00c6bfe)
  • Handle interface in XamlFileGenerator.IsType (4e54abb)
  • Handle nullable value types correctly in BindableTypeProvidersSourceGenerator (b8b580b)
  • Include net7.0-windows as net8.0 to avoid nuget resolution issues (d8c0180)
  • initialize visiblebounds earlier on android (74fc072)
  • issue with libraries not getting correct resource path (941e81f)
  • Make maui caps conditional to mobile targets (848e9ec)
  • Make sure to filter ouut the exit event even if capture is done on a nested child (415a874)
  • Native iOS Date and Time picker dialogs should follow application theme (aefbb92)
  • NETSDK1206 (60782f5)
  • NRE on PickImageFromFile cancellation (b2c6adf)
  • Only open ComboBox dropdown when it was previously pressed (ed25804)
  • popups should call OnClosing before actually closing (85ced26)
  • prevent invalid references when referenced by WinUI head (c8b52aa)
  • prevent multiple loading of Skia and Wasm targets (e0d7c66)
  • prevent multiple loading of Skia and Wasm targets (98d5f7e)
  • Produce OriginalSourceLocation for top-level resource dictionaries (f9d67c3)
  • Properly handle InsetClip (49ee933)
  • properly lookup the Uno Version from the Manifest (ef2ace1)
  • PropertyChanged subscriptions delayed heavily on WASM (73de5dd)
  • Re-evaluate visual state setters on theme change (190c390)
  • read gtk window height correctly on WSL (e2a680d)
  • Reduce log level in framework sync (963f3e6)
  • Reload project when going from/to browserwasm (179f0a6)
  • Remove legacy singleproject when uno.sdk is present (03cf137)
  • Remove removed project (a120dc9)
  • removing wasm specific instruction fix When_ThemeChange test in ListViewBase. (42f6bce)
  • removing Windows Framework References for desktop libraries (72b56e6)
  • Run UnoAssetsGeneration at design time (9b99f96)
  • scaling support for X11 (5ad3bdf)
  • set unicode value on KeyEventArgs (0b8ed31)
  • Skia packages are implicitly included in legacy Wasm head (efe4b83)
  • Track startup projects to refresh the profile observer (189b802)
  • Uno packages not included for non-runtime target (e6239ff)
  • catalyst: FolderOpenPicker on UIThread (6d56f3a)
  • catalyst: FolderPicker not returning (e57bcf3)
  • catalyst: load required mono component for HR (9cb7937)
  • combobox: Don't reset SelectedIndex when changing the itemsource (a3f227a)
  • gtk: Fix issue where setting background color in OnLaunched is ineffective on Skia.Gtk platform (99a4e32)
  • image: remove all image when iamge source changes (255e023)
  • iOS: StorageFile information using PHPicker (ffba912)
  • itemsRepeater: Fix an issue where IR might re-position first items if items below are significantly higher (08f9b15)
  • macOS: enable code for badge notification (1826f69)
  • macos/skia: avoid crashed when closing windows (72e296f)
  • passwordbox: reveal button not working (17b8c82)
  • pointers: Fix pointer exit not raised on wasm if intermediate element is larger than parent and not hit-testable (2b64bdb)
  • selectoritem: dragging wouldn't work if the pointer was pressed near the edge of the item (4216e8c)
  • prevent project building on macos (a39298a)
  • Remove deprecated test (0acd6bc)
  • URI launchers to use the Windows implementation on Windows and the Linux implementation on Linux (3faf589)
  • Use UIDocumentPickerViewController if multiple files are picked (5f2a5d7)
  • Warn if desktop tf is not first for WSL debugging (dbde71e)
  • android: Fix NullReferenceException in ProgressBar for custom templates (fe56160)
  • catalyst: FileOpenPicker not on UI Thread (e1ae085)
  • catalyst: Launcher.LaunchUriAsync from not UI thread (7dbaebc)
  • droid: FileOpenPicker to suggest native media app (ea949b1)
  • iOS: MPE round to 1 decimal to keep it closer (993c3a9)
  • iOS: MPE sizing loops (e6df6c3)
  • mpe: hide video window on unload (66f3b4d)
  • reg: Fix VirtualKey regression on Linux (5a6656c)
  • repeater: Disable non supported animation (032f2f0)
  • skia: Fix TransformToVisual and hit testing to consider Visual.Offset correctly (31c2e6f)
  • textblock: fix selection when CRLF is present (1df808a)
  • textblock: only open context menu on right tap when IsTextSelectionEnabled (670541f)
  • textbox: bring TextBox into view on focus (70e2b52)
  • textbox: fix numberpad inputs on WPF (dc82d52)
  • textbox: only make cursor IBeam when inside ContentElement (6e3b268)
  • [Catalyst] Ensure LottieVisualSource is transparent (3bb6494)
  • [iOS] Avoid crash when content size is negative (c7c0acb)
  • add MSIX project capabilities for non-SingleProject (8f51153)
  • add relative link (8850f88)
  • Adjust IDE Channel message serialization (7dfb90f)
  • Adjust invariant mode for catalyst samples app (57b519b)
  • allow TargetFramework to be set (eb636c9)
  • Background image should not adjust area (84f8575)
  • Build Maps and Foldable with NetPrevious (net7.0) only (2351284)
  • Configure devserver log level, reduce verbosity (501c5be)
  • correct call to getSkiaSharpDylib.sh script (950d660)
  • Correctly dismiss and track native date and time picker flyouts (1fb0631)
  • cursor always starting on IBeam on X11 (51a5b2c)
  • Don't include uno binaries in netx.y-windows and uap builds (20daea2)
  • Don't run PRI workaround for WinUI on the head project (cfc3a38)
  • Ensure root visual roots are removed when content changes (0a70ba9)
  • Fix CalendarDatePicker day item corner (b2f98b5)
  • Fix CalendarView infinite loop (42049f1)
  • fix formatting (b612edf)
  • fix formatting (b23cc21)
  • Fix navigation view back button styles (0589667)
  • Fix RadialGradientBrush on Skia (1fcd30e)
  • Fix SV HR tests (2f91c83)
  • Fix TextBlock.Foreground LinearGradientBrush not taking exact text width (eda7468)
  • Fix x:Bind cast when type is in default namespace (2633f47)
  • fixes RuntimeIdentifiers issue on Windows (00ec3f1)
  • Force disable template pooling for all platforms (6d92a5b)
  • IDE0055 formatting error on CI builds (4d69ce4)
  • Include HR element handlers on windows (C# markup only) (2ec7b0a)
  • Include netstdref for net7.0 and net8.0 builds (0b552d9)
  • Make it possible to retrieve instance of ApplicationView earlier (69718ef)
  • make Visibility to Collapsed when parent element is null (b135467)
  • metal rendering at 2x (retina) (c255973)
  • Playground is not always loading correctly (ea2d134)
  • Properly handle {x:Null} in an attached DP (d0f327e)
  • Setting EnableMsixTooling only on windows target (not class library) (6f4d718)
  • Specify root mode for root assembly (dd35b12)
  • x11 crashing when a scaled window icon is needed (766a94d)
  • autosuggestbox: fix suggestion flyout not opening on user input using managed skia textbox (31ac2bc)
  • FocusVisual: adjust the focusvisual position (747673d)
  • gridview: fix header being placed in wrong orientation (a7bdeba)
  • gtk: Align VirtualKey with WinUI (7ff5a48)
  • hotreload: inverse Android and iOS/Catalyst versions (3744776)
  • iOS: Multi FilePicker implementation (a2262ce)
  • macos/skia: avoid crashed when closing windows (a897c0d)
  • passwordbox: use a larger bullet glyph to match WinUI (eaded92)
  • pointers: Make sure if pointer args is flagged as handled in PointerCaptureLost to not re-dispatch it for pointer exit. (31722e2)
  • pointers: Make sure the PointerCapture is raised only once the up has reach the top of the visual tree on iOS (99312a9)
  • popup: add a workaround to make popup focusable despite being not IsTabStop (ed3d300)
  • reg: Fix regression which make test to fail on wasm (8d830c5)
  • skia: Fix ineffective FillRule setting for StreamGeometry on Skia platform (8e249d6)
  • textblock: adjust selection to account for surrogate pairs being 2 chars (8acee8b)
  • textblock: clear selection on outside clicks, copy/paste and context menu for skia (8b45e45)
  • textblock: make hold-and-drag-to-select work outside TextBlock bounds (fa86436)
  • textbox: caret color should follow theme (ef9f036)
  • textbox: don't change TextBlock selection when inside TextBox (763a898)
  • textbox: stop infinite invalidations in TextBox on WPF (40aa49e)
  • textbox: Use Command (not Ctrl) for macOS shorcuts (b0a6907)
  • Implement IUnoKeyboardInputSource on FrameBuffer (e939007)
  • import Project Capabilities (858421a)
  • import targets (64e3d4a)
  • Invalid TIMEPICKER_MINUTEINCREMENT_MAX (4a9b172)
  • load XamlRoot RootElement in UnoIslands (a354c42)
  • Move DatePicker cleanup from destructor to Unloaded (e8ced23)
  • Native Android Date and Time picker dialogs should follow application theme (80dd424)
  • only load capabilities from the Sdk (45d910f)
  • output retina quality output on mac/skia software rendering (f8ec0c1)
  • Remove SamplesApp.UWP references (b84e12d)
  • resizetizer warning (0ae3867)
  • resizetizer warning (e3555f8)
  • Restore hot reload tests (ecb3add)
  • Restore ui test buckets (51b5c90)
  • skia textbox overlay not disappearing on unfocus when FeatureConfiguration changes (fcabb50)
  • Swallow Style setter exceptions as in WinUI (e34b703)
  • tell macOS we handled all keydown events (91f338b)
  • Thumb does not prevent scroll (c95c00c)
  • TimePickerFlyout is not visible if not opened from TimePicker (837332e)
  • Updated StackPanel.Spacing handling (f8aacac)
  • window icon in X11 (cd51cc5)
  • Workaround CalendarView crash on negative time zones (ae5410b)
  • WPF should honor IsAlwaysOnTop flag (214e665)
  • textblock: clear selection on outside clicks, copy/paste and context menu for skia (f881e0c)
  • textbox: fix BeforeTextChanging cancelling on Wpf (436eee1)
  • textbox: shift-arrowkeys shouldn't change the offset of the text inside the ScrollViewer as long as the caret is in view (5620778)

Reverts

  • "test: enable and fix Given_Launcher to run on skia" (b713966)