1.5.0
This is a combined changelog from the prerelease versions:
Common
Features
Dialog
API is available to use from common source setPopup
API is available to use from common source setWindowInsets
API is available to use from common source set- A warning if
compose.kotlinCompilerPlugin
is set toandroidx.compose.compiler.compiler
androidx.compose.material.DropdownMenu
is available to use from common source setandroidx.compose.material3.DropdownMenu
is available to use from common source setandroidx.compose.material.AlertDialog
is available to use from common source setandroidx.compose.material3.AlertDialog
is available to use from common source set- Add
PopupProperties.clippingEnabled
setting - material3. Support
DatePicker
,DatePickerDialog
andTimePicker
Fixes
Popup
. Fix overridingpressOwner
on multitouch- Fix sending multiple touches in tests
- Fix multi-owner input processing
- Fix paragraph word boundary unicode handling
- Optimize the
Canvas
transformation functions - Fix click outside of common
Dialog
behaviour
API Changes
iOS
Features
- iOS native scroll and feel
- Simplify resource management (works without CocoaPods now)
TextField
keyboardOptions, 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
TextField
context menu - Fix complex blending on iOS
ViewConfiguration.touchSlop
value is quite low on iOS- Fix
topLeftOffset
calculation on iOS in Split View Modifier.draggable
onDragStopped
not 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=none
is no longer needed) - Limit max
Dialog
andPopup
size by safe area on iOS TextField
, Korean characters are not normally enteredColorMatrix
value range for 5th column was incorrect on Skiko backed platformsisSystemDarkTheme
now automatically react to the system theme changes
API Changes
- Resource management was reimplemented. Follow the guide in the PR to support new feautures
CADisableMinimumFrameDurationOnPhone
added to the template'sInfo.plist
to 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.
ComposePanel
that can be disposed manually - Add semantic properties to
DialogWindow
,Popup
andDialog
- Use
Segoe UI
as sans serif font on Windows - Add ProGuard optimize flag
Fixes
- Fix loosing frames on macOs
- Scrolling
LazyColumn
via mouse wheel stops working Slider
can be moved using keyboard, but cannot be submitted- Make one pixel beyond the scrollbar thumb react correctly to clicks
VerticalScrollbar
doesn't work properly whenLazyColumn
existsStickyHeader
- All
Popup
overloads call dismiss onEsc
key by default - Fix Could not infer Java runtime version for Java home directory
- Usage of deprecated
forEachGesture
inScrollbar.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.render
with 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
Window
andDialogWindow
API Changes
Web
Features
- Let
ComposeWindow
accept a custom canvas id (html canvas element id) - Support
Scrollbar
- Make
CanvasBasedWindow
apply default styles, set title
Fixes
- Workaround
ComposeWindow
multiple event listeners on resize - Fix
Modifier.pointerHoverIcon
for browser apps - Fux
RoundedCornerShape
with zero corners - Fix
ScrollConfig
in 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: