1.5.0
This is a combined changelog from the prerelease versions:
Common
Features
DialogAPI is available to use from common source setPopupAPI is available to use from common source setWindowInsetsAPI is available to use from common source set- A warning if
compose.kotlinCompilerPluginis set toandroidx.compose.compiler.compiler androidx.compose.material.DropdownMenuis available to use from common source setandroidx.compose.material3.DropdownMenuis available to use from common source setandroidx.compose.material.AlertDialogis available to use from common source setandroidx.compose.material3.AlertDialogis available to use from common source set- Add
PopupProperties.clippingEnabledsetting - material3. Support
DatePicker,DatePickerDialogandTimePicker
Fixes
Popup. Fix overridingpressOwneron multitouch- Fix sending multiple touches in tests
- Fix multi-owner input processing
- Fix paragraph word boundary unicode handling
- Optimize the
Canvastransformation functions - Fix click outside of common
Dialogbehaviour
API Changes
iOS
Features
- iOS native scroll and feel
- Simplify resource management (works without CocoaPods now)
TextFieldkeyboardOptions, capitalizationTextField, keyboard behavior when have fullscreen size TextFieldTextField, different behavior strategies on appearing the keyboard- Insets on iOS
- Support
Density.textSize(Dynamic Type) - Change default fonts (San Francisco is the default font)
- UIKit public
LocalUIViewController - Support singleLine and
KeyboardAction
Fixes
- Fix dynamic framework support
- Fix
TextFieldcontext menu - Fix complex blending on iOS
ViewConfiguration.touchSlopvalue is quite low on iOS- Fix
topLeftOffsetcalculation on iOS in Split View Modifier.draggableonDragStoppednot calledUIKitView. Fix lifetime discrepancy within the composition- Support 120hz screens
- Fix incorrect Skiko render target on iOS Metal
- Properly detect content based text direction on native
- Implemented all low-level functions to avoid random crashes
- Fix memory leak in
ComposeUIViewController - Manage Kotlin native cache kind automatically based on Kotlin version (
kotlin.native.cacheKind=noneis no longer needed) - Limit max
DialogandPopupsize by safe area on iOS TextField, Korean characters are not normally enteredColorMatrixvalue range for 5th column was incorrect on Skiko backed platformsisSystemDarkThemenow automatically react to the system theme changes
API Changes
- Resource management was reimplemented. Follow the guide in the PR to support new feautures
CADisableMinimumFrameDurationOnPhoneadded to the template'sInfo.plistto support 120HzComposeUIViewController. Dispose composition onviewDidDisappear
Desktop
Features
- Swing interop. Experimental off-screen rendering on graphics (hardware accelerated only on macOs at the moment)
- Swing interop.
ComposePanelthat can be disposed manually - Add semantic properties to
DialogWindow,PopupandDialog - Use
Segoe UIas sans serif font on Windows - Add ProGuard optimize flag
Fixes
- Fix loosing frames on macOs
- Scrolling
LazyColumnvia mouse wheel stops working Slidercan be moved using keyboard, but cannot be submitted- Make one pixel beyond the scrollbar thumb react correctly to clicks
VerticalScrollbardoesn't work properly whenLazyColumnexistsStickyHeader- All
Popupoverloads call dismiss onEsckey by default - Fix Could not infer Java runtime version for Java home directory
- Usage of deprecated
forEachGestureinScrollbar.desktop.kt - Test framework fixes
- Implement idling resources for tests
- Implement
SemanticsNodeInteraction.captureToImage() - Wait until compose is idle before returning from
DesktopTestOwner.getRoots() - When the test main clock is advanced, call
ComposeScene.renderwith the current test time - Add timestamps to batched test input events, and advance the test clock accordingly when sending them
- Tests support semanatic nodes inside
WindowandDialogWindow
API Changes
Web
Features
- Let
ComposeWindowaccept a custom canvas id (html canvas element id) - Support
Scrollbar - Make
CanvasBasedWindowapply default styles, set title
Fixes
- Workaround
ComposeWindowmultiple event listeners on resize - Fix
Modifier.pointerHoverIconfor browser apps - Fux
RoundedCornerShapewith zero corners - Fix
ScrollConfigin web target - Implemented low-level functions to avoid random crashes:
HTML library
Features
Gradle Plugin
Features
API Changes
Dependencies
This version of Compose Multiplatform is based on the next Jetpack Compose libraries: