Releases: JetBrains/compose-multiplatform
1.9.1
Changes since 1.9.0
Migration Notes
Multiple Platforms
-
compose.material3
alias from Gradle plugin now points toorg.jetbrains.compose.material3:material3:1.9.0
(based on Jetpack Compose Material31.4.0
), it wasorg.jetbrains.compose.material3:material3:1.8.2
(based on Jetpack Compose Material31.3.2
) in Compose Multiplatform1.9.0
. If you want to stay on the same minor version, replace the alias by an explicit dependency: #5441// was implementation(compose.material3) // replace by implementation("org.jetbrains.compose.material3:material3:1.8.2")
Fixes
iOS
- Add ability to reach internal accessibility elements inside accessibility nodes #2416
- Fix input session restarts triggered by
PlatformImeOptionsImpl
not being@Immutable
#2413 - Fix crash when removing characters after string replacement #2361
- Fix context menu appearance for text fields with transformation #2377
Desktop
ComposePanel
can now re-dispatch unconsumed mouse wheel events, allowing scrollable components beneath to be scrolled. To enable this behavior, set the system property"compose.swing.redispatchMouseWheelEvents"
to"true"
#2438
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.9.1
. Based on Jetpack Compose libraries: -
Compose Material3 libraries
org.jetbrains.compose.material3:material3*:1.9.0
. Based on Jetpack Compose Material3 1.4.0 -
Compose Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha05
. Based on Jetpack Compose Material3 Adaptive 1.2.0-alpha10 -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.5
. Based on Jetpack Lifecycle 2.9.4 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.1
. Based on Jetpack Navigation 2.9.4 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.3.5
. Based on Jetpack Savedstate 1.3.3 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.4.0
. Based on Jetpack WindowManager 1.4.0
1.10.0-alpha02
Changes since 1.10.0-alpha01
Highlights
Multiple Platforms
androidx.compose.ui.tooling.preview.Preview
annotation is now available fromcommonMain
source set #2424
Navigation
- Provide required
NavigationEventDispatcherOwner
for a correct Navigation3 support #2382
Features
Multiple Platforms
- Provide
LocalLifecycleOwner
insiderunComposeUiTest
by default #2400
iOS
- Add API to configure
UITextInputTraits.writingToolsBehavior
withPlatformImeOptions
#2435
Desktop
- Experimental
-Dskiko.gpu.resourceCacheLimit
VM property is introduced to limit GPU resource cache used for one window (default is 256M) #2422
Resources
- Add
setResourceReaderAndroidContext
to configure Android context in cases when a provider initialization is not available #5434
Navigation
- Basic support of the navigation3 library #2436
Fixes
Multiple Platforms
- (prerelease fix) Fix "Cinterop fails with an error when Compilation works fine" #2386
- (prerelease fix) Fix "warning: KLIB resolver: Could not find" #2386
iOS
- Clear
TextField
focus when another view becomes first responder #2337 - Fix context menu appearance for text fields with transformation #2377
- Fix input session restarts triggered by
PlatformImeOptionsImpl
not being@Immutable
#2413 - Add ability to reach internal accessibility elements inside accessibility nodes #2416
Desktop
- Fixed
ComposePanel
not initially focusing the first focusable node, when running in JetBrains Runtime JVM #2384 - Fixed background flashing when a window or dialog are closed #2403
- Fix "ComposePanel doesn't use hardware acceleration with
RenderSettings.SwingGraphics
on Linux" #2422
Resources
- Fix resource access in a Robolectric test environment #5433
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.10.0-alpha02
. Based on Jetpack Compose libraries: -
Compose Material3 libraries
org.jetbrains.compose.material3:material3*:1.10.0-alpha02
. Based on Jetpack Compose Material3 1.5.0-alpha04 -
Compose Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha07
. Based on Jetpack Compose Material3 Adaptive 1.2.0-beta03 -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.10.0-alpha02
. Based on Jetpack Lifecycle 2.10.0-alpha04 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0
. Based on Jetpack Navigation 2.9.1 -
Navigation Event library
org.jetbrains.androidx.navigationevent:navigationevent-compose:1.0.0-alpha01
. Based on Jetpack Navigation Event 1.0.0-alpha09 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.4.0-alpha02
. Based on Jetpack Savedstate 1.4.0-alpha03 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.5.0-alpha02
. Based on Jetpack WindowManager 1.5.0
1.9.0
Changes since 1.8.2
See also What's new.
Highlights
Web
- Added a
WebElementView
Composable function for embedding the absolutely positioned HTML content in Compose for web target. It's supported only when usingComposeViewport
entry point and it's not supported withCanvasBasedWindow
, which is deprecated now #2145 - Text context menu is supported on web platforms for both modes: mobile and desktop #2207
- Introduce the basic support of accessibility in the web target #2188
Migration Notes
Multiple Platforms
- Material3 versioning is decoupled for the Compose Multiplatform 1.9.* release due the upstream Jetpack Compose Material3 1.4 has not been released as stable yet #5360
compose.material3
now points to the latest stable Material3 version, 1.8.2. If the latest Material3 features are needed, please include it this way: #5360implementation("org.jetbrains.compose.material3:material3:1.9.0-beta06")
- [If you use
org.jetbrains.compose.material3:material3:1.9.0-beta06
]kotlinx-datetime
is updated to0.7.1
. If you also use it in your projects, please update it to this version to ensure compatibility #2276
iOS
- Remove experimental attribute from
UIKitInteropInteractionMode
#2215
Desktop
Window
andDialogWindow
overloads that create aComposeWindow
/ComposeDialog
have been renamed toSwingWindow
/SwingDialog
and the old versions have been deprecated #2141- When the window is iconified, converting to/from screen coordinates (with e.g.
LayoutCoordinates.positionOnScreen()
) will returnOffset.Unspecified
#2163 - Deprecated experimental
Modifier.mouseClickable
is removed. See https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-mouse-events.html for alternatives #2194 - Kotlin 2.1 is required for all platforms including JVM (it was required only for native and web before) #2276
Web
fun ComposeViewport
withviewportContainerId: String?
parameter now can be called from a web-commonfun main
(k/js and k/wasm) #2226CanvasBasedWindow
is deprecated, useComposeViewport
instead. UnlikeCanvasBasedWindow
, which expect as an input param the id to theHTMLCanvasElement
that will be used for rendering,ComposeViewport
one passesparentContainer
(and corresponding HTML Canvas element will be created automatically). By default such container isdocument.body
#2280- Setting
org.jetbrains.compose.experimental.jscanvas.enabled=true
is not required anymore when having a kotlin/js target #5340
Gradle Plugin
- The Compose Gradle plugin requires the Kotlin Gradle plugin version 2.+ now. Old
org.jetbrains.compose.compiler
is not supported anymore and the API to configure it was removed #5283
Features
Multiple Platforms
- Adopted a change in
ComposeUiTest
API. Theblock
inrunComposeUiTest
issuspend
now. It allows to callawaitIdle
and other suspend functions. It ensures a correct execution of a test on all platforms. See the web specifics inkotlinx.coroutines.test.runTest
documentation #2066 - Support customizable shadows #2183
- Extended the
@Preview
(org.jetbrains.compose.ui.tooling.preview
) annotation with the following parameters: name, group, widthDp, heightDp, locale, showBackground, backgroundColor. IDE (IJ or AS) will pick up these parameters in the same way it works forandroidx
Preview annotations #5339
iOS
- Add support for native IME configuration with
PlatformImeOptions
#2108 - Add support for
keepScreenOn
modifier #2180 - Support new context menu API with default menu #2214
- Add support for frame rate voting #2205
- Support scroll commands with Voice Control #2234
- Implement accessibility scroll to focused interop views #2228
Desktop
- Add accessibility role for
Switch
, reporting it as a checkbox #2136 - Added
SwingFrame
andSwingDialog
composables that allow configuring the window/dialog before it is shown #2139 - Full
AnnotatedString
is available as a data flavor inClipEntry
, instead of only its text #2092 - Add
RenderSettings.SwingGraphics
option forComposePanel.renderSettings
argument #2071 - Basic support for new context menu API #2196
- Added experimental support for save and restore compose state.
ComposePanel
,ComposeWindow
andComposeDialog
now hassavedState
constructor parameter to restore previous state andsaveState
function to save the current state for later use #2225
Web
- Support the new context menu API in web targets in the desktop mode #2224
- Support of the new context menu toolbar in web mobile targets #2251
- [js] there's no need to manually add skiko.js to the html page any more #2264
- Introduce
composeCompatibilityBrowserDistribution
task. This task combines two prod distributions - for js and for wasm in such way so that if modern required features are not supported by the consumer browser, application switch to js mode #5375
Resources
- Added
JvmResourceReader
API and madeLocalResourceReader
public to allow providing a custom classloader for desktop target #5334
Navigation
- A new API was added to bind the browser navigation state with the
NavController
-suspend fun NavController.bindToBrowserNavigation
. And the existing functionsuspend fun Window.bindToNavigation
is deprecated now #2189
Fixes
Multiple Platforms
- Fix extra draw invalidations during scrolling (1.8 regression) #2212
- Fix text ellipsis if there's not enough vertical space to fit all lines #2246
- Fix "IrLinkageError: Function can not be called: No function found for symbol" #2293
ExperimentalMaterial3ExpressiveApi
annotation removed from no-longer-experimental API #2298
iOS
- Fix issue where keyboard would appear after second tap when text input session was intercepted #2049
- Change the accessibility selection to the element that has most recently been focused on #2217
- Fix Full Keyboard Access on iOS 17 and lower #2216
- Fixes the appearance of the keyboard when a pop-up or dialog on the background is dismissed #2240
- Do not flatten accessibility tree inside accessibility elements #2243
Desktop
- [macOS] Fix the background flashing when closing a window/dialog and an animation is running #2058
- [macOS; JBR] Fixed the current composition in a text field being duplicated into another text field when switching focus to it #2026
- [macOS] Fixed strange glyph being displayed in a text field if window becomes un...
1.9.0-rc02
Changes since 1.9.0-rc01
Fixes
Multiple Platforms
- (prerelease fix) Fix "Cinterop fails with an error when Compilation works fine" #2386
- (prerelease fix) Fix "warning: KLIB resolver: Could not find" #2386
Web
- Fix the issue where deleting a word in the middle of a sentence also affects the word next to it #2372
Gradle Plugin
- (prerelease fix) Fix
composeCompatibilityBrowserDistribution
task lazy configuration #5398
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.9.0-rc02
. Based on Jetpack Compose libraries: -
Compose Material3 libraries
org.jetbrains.compose.material3:material3*:1.9.0-beta05
. Based on Jetpack Compose Material3 1.4.0-beta03 -
Compose Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha06
. Based on Jetpack Compose Material3 Adaptive 1.2.0-alpha11 -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.4-rc01
. Based on Jetpack Lifecycle 2.9.2 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-rc02
. Based on Jetpack Navigation 2.9.1 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.3.4-rc01
. Based on Jetpack Savedstate 1.3.1 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.4.0-rc02
. Based on Jetpack WindowManager 1.4.0
1.10.0-alpha01
Highlights
Multiple Platforms
widgets-gallery
sample has been removed in favor of the interactive API reference #5365
Breaking Changes
iOS
- Align
@Composable
attribute inWindowInsets.Companion.captionBar
to other platforms #2258
Migration Notes
Multiple Platforms
- The pre‑1.7 workaround in the common
PopupProperties
/DialogProperties
constructors (annotatedDeprecated(HIDDEN)
since 1.7) has been removed. This change may formally affect binary compatibility. Although we are not aware of concrete cases, if your project depends on third‑party libraries that reference this constructor, please update those dependencies to versions compatible with this release #2303 - Kotlin 2.2 is required for native and web platforms #2357
Desktop
Features
Multiple Platforms
- Update skia to m138 (see release notes) #2304
- The new context menu is enabled by default on all platforms now. It still might be disabled via
ComposeFoundationFlags.isNewContextMenuEnabled
flag in case of issues #2341 - Provide public API for
@ResourceContentHash
annotation generation #5402
iOS
- Add support for
WindowInsetsRulers
#2258 - Support automatic scrolling for Full Keyboard Access #2222
- Support custom menu items for text context menu #2324
- Add API to configure
UIResponder.inputView
withPlatformImeOptions
#2350 - Add API to configure
UIResponder.inputAccessoryView
withPlatformImeOptions
#2350
Desktop
- Added
modalityType
parameter toDialogWindow()
#2300 - The Compose entry points on the desktop (
ComposeWindow
,ComposePanel
andImageComposeScene
) now exposeval semanticsOwners: Collection<SemanticsOwner>
#2358
Fixes
Multiple Platforms
- Fix application of
baselineShift
parameter in text layout #2304 - Fix setting
lineHeight
to0
in text layout #2304
iOS
- Fix incorrect behavior of
WindowInsets.displayCutout
in different interface orientations #2301 - Fix incorrect behavior of
WindowInsets.displayCutout
on iPad #2301 - Fix the ability to use UIKitViewController inside
Popup
s andDialog
s #2270 - Fix Accessibility announcing the old state of component #2327
- Align the semantics of TextFields with iOS text inputs #2331
- Fix crash when removing characters after string replacement #2361
Desktop
- Fix non-focusable popup with
compose.layers.type=WINDOW
stealing focus #2285 - Change
ComposePanel.getPreferredSize
to return 0x0 instead ofnull
#2283 - Request initial focus for focusable popups when used from
ComposePanel
in some cases #2289 - In experimental
compose.layers.type
modes, fixPopup
/Dialog
container size calculation that prevents mouse interactions on base compose scene #2304 - Fixed the sizing of unfocusable layers when
compose.layers.type=COMPONENT
is used #2305 SwingPanel
no longer requires to be manually sized to a fixed value; it will size according to its content's min/pref/max sizes #2310- Made disabled new context menu items actually disabled, including the right semantics #2347
Web
- Fix the issue where deleting a word in the middle of a sentence also affects the word next to it #2372
Gradle Plugin
- Support
AGP 9.0.0
#5391 - (prerelease fix) Fix composeCompatibilityBrowserDistribution task lazy configuration #5398
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.10.0-alpha01
. Based on Jetpack Compose libraries: -
Compose Material3 libraries
org.jetbrains.compose.material3:material3*:1.10.0-alpha01
. Based on Jetpack Compose Material3 1.5.0-alpha03 -
Compose Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha06
. Based on Jetpack Compose Material3 Adaptive 1.2.0-alpha11 -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.10.0-alpha01
. Based on Jetpack Lifecycle 2.10.0-alpha03 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-rc01
. Based on Jetpack Navigation 2.9.1 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.4.0-alpha01
. Based on Jetpack Savedstate 1.4.0-alpha03 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.5.0-alpha01
. Based on Jetpack WindowManager 1.5.0-beta02
1.9.0-rc01
Fixes
Multiple Platforms
- (prerelease fix) Fix incorrect light source position for dynamic shadows in some cases #2328
Desktop
- (prerelease fix) Fixed focus indication being shown in touch input mode #2342
- Fix
runRelease
task when navigation andobfuscate.set(true)
are used #5384
Lifecycle
- Fix dependency to Compose in
lifecycle-viewmodel-compose
module:2.9.2
incorrectly refer Compose Multiplatform1.9.0-beta03
. Now it reverted back to1.8.2
#2318
SavedState
- Fix dependency to Compose in
savedstate-compose
module:1.3.2
incorrectly refer Compose Multiplatform1.9.0-beta03
. Now it reverted back to1.8.2
#2321
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.9.0-rc01
. Based on Jetpack Compose libraries: -
Compose Material3 libraries
org.jetbrains.compose.material3:material3*:1.9.0-beta04
. Based on Jetpack Compose Material3 1.4.0-beta02 -
Compose Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha05
. Based on Jetpack Compose Material3 Adaptive 1.2.0-alpha10 -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.3
. Based on Jetpack Lifecycle 2.9.2 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-rc01
. Based on Jetpack Navigation 2.9.1 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.3.3
. Based on Jetpack Savedstate 1.3.1 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.4.0-rc01
. Based on Jetpack WindowManager 1.4.0
1.9.0-beta03
Changes since 1.9.0-beta01
Breaking Changes
Multiple Platforms
-
(prerelease fix) All public APIs tagged with
ExperimentalMaterial3ExpressiveApi
orExperimentalMaterial3ComponentOverrideApi
have been removed, see Google Jetpack changelog. Please use the previous Material3 alpha version explicitly to continue enjoying these features: #2278implementation("org.jetbrains.compose.material3:material3:1.9.0-alpha04")
Migration Notes
Multiple Platforms
kotlinx-datetime
is updated to0.7.1
. If you also use it in your projects, please update it to this version to ensure compatibility #2276
Desktop
- Kotlin 2.1 is required for all platforms including JVM (it was required only for native and web before) #2276
Web
CanvasBasedWindow
is deprecated, useComposeViewport
instead. UnlikeCanvasBasedWindow
, which expect as an input param the id to theHTMLCanvasElement
that will be used for rendering,ComposeViewport
one passesparentContainer
(and corresponding HTML Canvas element will be created automatically). By default such container isdocument.body
#2280
Features
Web
- Support of the new context menu toolbar in web mobile targets #2251
- [js] there's no need to manually add skiko.js to the html page any more #2264
- Introduce
composeCompatibilityBrowserDistribution
task. This task combines two prod distributions - for js and for wasm in such way so that if modern required features are not supported by the consumer browser, application switch to js mode #5375
Fixes
Multiple Platforms
- Fix text ellipsis if there's not enough vertical space to fit all lines #2246
- Fix "IrLinkageError: Function can not be called: No function found for symbol" #2293
ExperimentalMaterial3ExpressiveApi
annotation removed from no-longer-experimental API #2298
iOS
- Do not flatten accessibility tree inside accessibility elements #2243
Desktop
- [macOS] Fix composite (e.g. Chinese) input after pressing backspace #2250
- [TextField] Fixed duplication of the composed characters when moving the caret by clicking during a composition #2255
- (prerelease fix) Close the context menu when a menu item is clicked (old context menu API) #2259
- Correctly remove
SwingPanel
children ofComposePanel
, when the compose panel is itself removed from the hierarchy #2277 - (prerelease fix) Fix
DialogWindow
causing a taskbar icon to be displayed in some cases where it shouldn't #2291
Web
- Fix software keyboard behaviour for Compose Text Fields in iOS Safari #2260
- Fixed the bugs with composite text input #2256
- (prerelease fix) Hide disabled context menu items in the web text toolbar menu #2268
- (prerelease fix) Show the "paste" item regardless of the the clipboard content state if the Clipboard API is supported #2267
- (prerelease fix) The context menu will not show the Clipboard-related items when the Clipboard API are not supported by a browser #2266
- Fixed the issue with software keyboard when it was shown repeatedly in Chrome mobile #2279
- (prerelease fix) The context menu had only "Select All" item when targeting k/js #2296
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.9.0-beta03
. Based on Jetpack Compose libraries: -
Compose Material3 libraries
org.jetbrains.compose.material3:material3*:1.9.0-beta03
. Based on Jetpack Compose Material3 1.4.0-beta01 -
Compose Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha05
. Based on Jetpack Compose Material3 Adaptive 1.2.0-alpha10 -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.2
. Based on Jetpack Lifecycle 2.9.2 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta05
. Based on Jetpack Navigation 2.9.1 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.3.2
. Based on Jetpack Savedstate 1.3.1 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.4.0-beta01
. Based on Jetpack WindowManager 1.4.0
1.9.0-beta01
Changes since 1.9.0-alpha03
Highlights
Web
- Text context menu is supported on web platforms for both modes: mobile and desktop #2207
- Introduce the basic support of accessibility in the web target #2188
Migration Notes
Multiple Platforms
-
Material3 versioning is decoupled for the Compose Multiplatform 1.9.* release due the upstream Jetpack Compose Material3 1.4 has not been released as stable yet #5360
-
compose.material3
now points to the latest stable Material3 version, 1.8.2. If the latest Material3 features are needed, please include it this way: #5360implementation("org.jetbrains.compose.material3:material3:1.9.0-alpha04")
iOS
- Remove experimental attribute from
UIKitInteropInteractionMode
#2215
Web
fun ComposeViewport
withviewportContainerId: String?
parameter now can be called from a web-commonfun main
(k/js and k/wasm) #2226
Features
Multiple Platforms
- Extended the
@Preview
(org.jetbrains.compose.ui.tooling.preview
) annotation with the following parameters: name, group, widthDp, heightDp, locale, showBackground, backgroundColor. IDE (IJ or AS) will pick up these parameters in the same way it works forandroidx
Preview annotations #5339
iOS
- Support new context menu API with default menu #2214
- Add support for frame rate voting #2205
- Support scroll commands with Voice Control #2234
- Implement accessibility scroll to focused interop views #2228
Desktop
- Basic support for new context menu API #2196
- Added experimental support for save and restore compose state.
ComposePanel
,ComposeWindow
andComposeDialog
now hassavedState
constructor parameter to restore previous state andsaveState
function to save the current state for later use #2225
Web
- Support the new context menu API in web targets in the desktop mode #2224
Resources
- Added
JvmResourceReader
API and madeLocalResourceReader
public to allow providing a custom classloader for desktop target #5334
Navigation
- A new API was added to bind the browser navigation state with the
NavController
-suspend fun NavController.bindToBrowserNavigation
. And the existing functionsuspend fun Window.bindToNavigation
is deprecated now #2189
Fixes
Multiple Platforms
- Fix extra draw invalidations during scrolling (1.8 regression) #2212
- (prerelease fix) Fix trigger of
Modifier.onFirstVisible
modifier (added in Jetpack Compose1.9.0-alpha03
) #2233
iOS
- Change the accessibility selection to the element that has most recently been focused on #2217
- Fix Full Keyboard Access on iOS 17 and lower #2216
- (prerelease fix) Fixed
Undefined symbols for architecture arm64: _kfun:androidx.compose.material3.adaptive.WindowAdaptiveInfo
#2236 - Fixes the appearance of the keyboard when a pop-up or dialog on the background is dismissed #2240
Desktop
- Fixed the case when the IME's first event to a text field is to commit a composition #2210
- Elements marked with Modifier.semantics { hideFromAccessibility() } should now be correctly hidden from a11y #2204
- (prerelease fix) Fix focus switching for ComposePanel embedded in Swing UI #2232
- (prerelease fix) Fix Maven project doesn't work with 1.9.0-alpha03 #2248
Web
- Web Lifecycle triggers
START
/STOP
events on thevisibilitychange
callback now #2219 - Lifecycle fix on iOS Safari: now touch events trigger
ON_RESUME
because Safari ignores interactions and doesn't request the focus #2219
Gradle Plugin
- Fix codesigning on macOS when the developer id contains non-ASCII characters. Note that this requires JDK 21 or later #5358
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.9.0-beta01
. Based on Jetpack Compose libraries: -
Compose Material3 libraries
org.jetbrains.compose.material3:material3*:1.9.0-alpha04
. Based on Jetpack Compose Material3 1.4.0-alpha17 -
Compose Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha04
. Based on Jetpack Compose Material3 Adaptive 1.2.0-alpha08 -
Graphics-Shapes library
org.jetbrains.androidx.graphics:graphics-shapes:1.0.0-alpha09
. Based on Jetpack Graphics-Shapes 1.0.1 -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.1
. Based on Jetpack Lifecycle 2.9.1 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta04
. Based on Jetpack Navigation 2.9.1 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.3.1
. Based on Jetpack Savedstate 1.3.0 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.4.0-alpha09
. Based on Jetpack WindowManager 1.4.0
1.9.0-alpha03
Changes since 1.9.0-alpha02
Highlights
Web
- Added a
WebElementView
Composable function for embedding the absolutely positioned HTML content in Compose for web target. It's supported only when usingComposeViewport
entry point and it's not supported withCanvasBasedWindow
, which is deprecated now #2145
Migration Notes
Desktop
Window
andDialogWindow
overloads that create aComposeWindow
/ComposeDialog
have been renamed toSwingWindow
/SwingDialog
and the old versions have been deprecated #2141- When the window is iconified, converting to/from screen coordinates (with e.g.
LayoutCoordinates.positionOnScreen()
) will returnOffset.Unspecified
#2163 - Deprecated experimental
Modifier.mouseClickable
is removed. See https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-mouse-events.html for alternatives #2194
Web
- Setting
org.jetbrains.compose.experimental.jscanvas.enabled=true
is not required anymore when having a kotlin/js target #5340
Features
Multiple Platforms
- Support customizable shadows #2183
iOS
- Add support for
keepScreenOn
modifier #2180
Desktop
- Added
SwingFrame
andSwingDialog
composables that allow configuring the window/dialog before it is shown #2139 - Full
AnnotatedString
is available as a data flavor inClipEntry
, instead of only its text #2092 - Add
RenderSettings.SwingGraphics
option forComposePanel.renderSettings
argument #2071
Fixes
Multiple Platforms
- Fixed caret placement near glyphs if glyphs are compound symbols and part of them are non-spacing marks #2147
- (prerelease fix) Fix applying
colorFilter
andblendMode
fromGraphicsLayerScope
toGraphicsLayer
#2184
Desktop
- [Accessibility, macOS] Fixed VoiceOver to announce a Slider's value on every change #2152
- Return
Offset.Unspecified
instead of throwing an exception inLayoutCoordinates.localToScreen
andLayoutCoordinates.screenToLocal
#2160 - When the window moves or becomes iconified/de-iconified, all instances of
Modifier.onGloballyPositioned
will be called #2163 - Implemented a context menu for
BasicTextField(TextFieldState)
#2168 - (prerelease fix)
Could not find org.jetbrains.androidx.window:window-core-desktop:1.4.0-alpha07
when usingmaterial-adaptive
ormaterial3-adaptive-navigation-suite
#2179 SemanticsProperties.Text
andSemanticsProperties.ContentDescription
values will now be correctly concatenated whenModifier.semantics(mergeDescendants = true)
is used #2202
Web
- Fixed an unexpected back gesture after a horizontal scroll #2186
- Mitigate a typing delay regression in Safari browsers #2195
Gradle Plugin
- Don't fail gradle sync if TargetFormat.AppImage is specified in
targetFormats
on macOS #5332
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.9.0-alpha03
. Based on Jetpack Compose libraries: -
Graphics-Shapes library
org.jetbrains.androidx.graphics:graphics-shapes:1.0.0-alpha09
. Based on Jetpack Graphics-Shapes 1.0.1 -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.1
. Based on Jetpack Lifecycle 2.9.1 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha03
. Based on Jetpack Material3 Adaptive 1.2.0-alpha07 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta03
. Based on Jetpack Navigation 2.9.0 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.3.1
. Based on Jetpack Savedstate 1.3.0 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.4.0-alpha08
. Based on Jetpack WindowManager 1.4.0
1.8.2
Changes since 1.8.1
Fixes
Multiple Platforms
-
Fixed
TextField(TextFieldValue)
when used with a visual transformation with a non-identity offset mapping (potentially even crashing) #2130 -
Fixed a memory leak and performance degradation when
ComposeUiFlags.isRectTrackingEnabled
set totrue
(by default) #2123 -
Fixed caret placement near glyphs if glyphs are compound symbols and part of them are non-spacing marks #2155
-
Support Preview parameters for Previews in common source sets in IJ and AS. Note: IDEs also need to implement support on their end. Please check the respective IDE release notes to confirm this is supported #5323
Example usage:
import androidx.compose.runtime.Composable import org.jetbrains.compose.ui.tooling.preview.Preview import org.jetbrains.compose.ui.tooling.preview.PreviewParameter import org.jetbrains.compose.ui.tooling.preview.PreviewParameterProvider class MyPreviewParameterProvider : PreviewParameterProvider<String> { override val values = sequenceOf("Hello, Compose!", "Hello, World!") } /** * This function will generate two preview images with different texts. */ @Preview @Composable fun MyPreview(@PreviewParameter(MyPreviewParameterProvider::class) text: String) { Text(text) }
Desktop
- Fix the positioning of the IME popup being too far away from the text, on screens with density greater than
1.0
#2158
Navigation
- Fix the browser navigation integration problem due encoded routes #2143
- Fix a crash on iOS when a
NavHost
is located in a scrollable container #2146
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.8.2
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.1
. Based on Jetpack Lifecycle 2.9.1 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.1.2
. Based on Jetpack Material3 Adaptive 1.1.0 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta03
. Based on Jetpack Navigation 2.9.0 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.3.1
. Based on Jetpack Savedstate 1.3.0 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.4.0-alpha07
. Based on Jetpack WindowManager 1.4.0-alpha04