# ComposeFoundationFlags

Artifact: [androidx.compose.foundation:foundation](https://developer.android.com/jetpack/androidx/releases/compose-foundation) [View Source](https://cs.android.com/search?q=file:androidx/compose/foundation/ComposeFoundationFlags.kt+class:androidx.compose.foundation.ComposeFoundationFlags) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.8.0) Common/AllAndroid/JVM
- Cmn

  ```
  @ExperimentalFoundationApi
  object ComposeFoundationFlags
  ```

*** ** * ** ***

This is a collection of flags which are used to guard against regressions in some of the "riskier" refactors or new feature support that is added to this module. These flags are always "on" in the published artifact of this module, however these flags allow end consumers of this module to toggle them "off" in case this new path is causing a regression.

These flags are considered temporary, and there should be no expectation for these flags be around for an extended period of time. If you have a regression that one of these flags fixes, it is strongly encouraged for you to file a bug ASAP.

**Usage:**

In order to turn a feature off in a debug environment, it is recommended to set this to false in as close to the initial loading of the application as possible. Changing this value after compose library code has already been loaded can result in undefined behavior.

```kotlin
class MyApplication : Application() {
    override fun onCreate() {
        ComposeFoundationFlags.SomeFeatureEnabled = false
        super.onCreate()
    }
}
```

In order to turn this off in a release environment, it is recommended to additionally utilize R8 rules which force a single value for the entire build artifact. This can result in the new code paths being completely removed from the artifact, which can often have nontrivial positive performance impact.

```kotlin
-assumevalues class androidx.compose.foundation.ComposeFoundationFlags {
    public static boolean SomeFeatureEnabled return false
}
```

## Summary

| ### Public properties |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isAbsorbNonGestureNestedScrollInPagerFixEnabled()` This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/pager/package-summary#Pager(androidx.compose.ui.Modifier,androidx.compose.foundation.pager.PagerState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.gestures.Orientation,androidx.compose.foundation.gestures.TargetedFlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,kotlin.Int,androidx.compose.ui.unit.Dp,androidx.compose.foundation.pager.PageSize,androidx.compose.ui.input.nestedscroll.NestedScrollConnection,kotlin.Function1,androidx.compose.ui.Alignment.Horizontal,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.gestures.snapping.SnapPosition,androidx.compose.foundation.gestures.BringIntoViewSpec,kotlin.Function2)`'s default nested scroll connection absorbs unconsumed main-axis deltas during non-gesture scrolls (such as accessibility actions) to prevent synthetic scrolls from accidentally dragging the parent Pager. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isAnchoredDraggableTargetValueCalculationFixEnabled()` With this flag enabled, `https://developer.android.com/reference/kotlin/androidx/compose/foundation/gestures/AnchoredDraggableState#targetValue()` correctly returns the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/gestures/AnchoredDraggableState#currentValue()` when no `https://developer.android.com/reference/kotlin/androidx/compose/foundation/gestures/AnchoredDraggableState#anchoredDrag(androidx.compose.foundation.MutatePriority,kotlin.coroutines.SuspendFunction2)` is in progress. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isBasicTextFieldHeightInLinesOptimizationEnabled()` This flag controls performance optimizations related to `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)`'s internal calculations of the minimum and maximum height. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isBasicTextFieldMinSizeOptimizationEnabled()` This flag controls performance optimizations related to `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)`'s internal min height calculations. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isBasicTextFieldSizeOptimizationEnabled()` This flag controls performance optimizations related to squashing multiple modifiers responsible for providing default measurement of the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)` into one. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isBasicTextFieldStyledTextEnabled()` This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)`'s formatted text features are enabled. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isBorderMatchesOutlineBoundsFixEnabled()` Controls whether the new `https://developer.android.com/reference/kotlin/androidx/compose/foundation/border.modifier#(androidx.compose.ui.Modifier).border(androidx.compose.foundation.BorderStroke,androidx.compose.ui.graphics.Shape)` implementation renders using the bounds of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Outline` created by the provided shape. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isCacheWindowForPagerEnabled()` With this flag on, Pager will use `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` as the default prefetching strategy, instead of 1 item in the direction of the scroll. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isCacheWindowLookaheadCheckEnabled()` This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` checks if the number of visible items has changed across iterations without scroll deltas (such as when changing lookahead window sizes) and refills the cache window if needed. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isDragNodeOffsetDoubleCountingFixEnabled()` This flag controls whether the legacy nodeOffset logic in DragGestureNode and IndirectPointerInputDragCycleDetector is disabled. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isDraggableInitialPassConsumptionFixEnabled()` This flag controls the fix where we prioritize consumption on initial pass in Draggable. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isDraggableVelocityTrackerFixEnabled()` This flag controls whether the fix for velocity tracker usage in Draggable and related classes is enabled to a) properly track velocity per pointer and b) make sure to also take the pointer events into account that don't move at the beginning of the gesture in order to increase the stability of the computed velocity. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isDraggableZeroDeltaConsumptionEnabled()` This flag controls the fix where draggable was ignoring and not consuming zero delta events. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isInheritedTextStyleEnabled()` Whether to support inherited text styles. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isKeepAroundDuringLookaheadDisabled()` This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` only executes `keepAroundItems` during non-lookahead (approach) measure passes in `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/package-summary#LazyList(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,kotlin.Int,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`, `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/package-summary#LazyGrid(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.grid.LazyGridState,androidx.compose.foundation.lazy.grid.LazyGridSlotsProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`, and `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/staggeredgrid/package-summary#LazyStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState,androidx.compose.foundation.gestures.Orientation,androidx.compose.foundation.lazy.staggeredgrid.LazyGridStaggeredGridSlotsProvider,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isLazyListItemAnimatorVisibleBoundsFixEnabled()` This flag controls whether lazy list measure passes calculate `firstVisibleIndex` and `lastVisibleIndex` from layout visible items before item placement animations run, preventing moving-away items added by `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutItemAnimator` from corrupting visible item bounds and causing unwanted composition in prefetch or cache window strategies. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isLinkMinimumTouchTargetSizeZeroEnabled()` Disable minimum touch target expansion for inline links. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isMouseSelectionBetweenTextEnabled()` This flag controls whether it's possible to start selecting (via the mouse) text in a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/selection/SelectionContainer.composable#SelectionContainer(androidx.compose.ui.Modifier,kotlin.Function0)` by dragging from the areas between the text selectables. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isMultiLaneCacheWindowEnabled()` With this flag on, `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` will support multi-lane configurations. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isNewBorderImplementationEnabled()` Whether to use an updated implementation to render borders in `https://developer.android.com/reference/kotlin/androidx/compose/foundation/border.modifier#(androidx.compose.ui.Modifier).border(androidx.compose.foundation.BorderStroke,androidx.compose.ui.graphics.Shape)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isNewContextMenuEnabled()` Whether to use the new context menu API and default implementations in `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/selection/SelectionContainer.composable#SelectionContainer(androidx.compose.ui.Modifier,kotlin.Function0)`, and all `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)`s. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isPreferDefaultCacheWindowOverPrefetchStrategyLazyGrid()` This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/package-summary#LazyGrid(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.grid.LazyGridState,androidx.compose.foundation.lazy.grid.LazyGridSlotsProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` prefers using the default `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` over `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/LazyGridPrefetchStrategy`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isPreferDefaultCacheWindowOverPrefetchStrategyLazyList()` This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/package-summary#LazyList(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,kotlin.Int,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` prefers using the default `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` over `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListPrefetchStrategy`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isReverseLayoutNestedScrollConnectionInPagerFixEnabled()` This flag controls the fix where we correctly dispatch deltas in pager's default pageNestedScrollConnection by considering the role of reverse layout. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isRoundedRectangleBorderRenderingFixEnabled()` Controls a fix for using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/border.modifier#(androidx.compose.ui.Modifier).border(androidx.compose.foundation.BorderStroke,androidx.compose.ui.graphics.Shape)` with custom shape implementations that return `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Outline.Rounded` where the outline does not start at (0,0). | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isSelectionAutoScrollEnabled()` This flag controls whether selecting text in `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/selection/SelectionContainer.composable#SelectionContainer(androidx.compose.ui.Modifier,kotlin.Function0)` causes scrollable ancestors of the text to be scrolled when the selecting pointer is dragged outside the scrollable's viewport. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isSmartSelectionEnabled()` Whether to use the new smart selection feature in `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/selection/SelectionContainer.composable#SelectionContainer(androidx.compose.ui.Modifier,kotlin.Function0)` and all `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)`s. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isTextFieldWaitWindowFocusForInputSessionEnabled()` Controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)` starts the input session only when the window is focused rather than immediately upon element focus. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isUsingCacheWindowInStaggeredGrids()` With this flag enabled, `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/staggeredgrid/package-summary#LazyStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState,androidx.compose.foundation.gestures.Orientation,androidx.compose.foundation.lazy.staggeredgrid.LazyGridStaggeredGridSlotsProvider,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` layouts will make use of a cache window, either a default cache window or the cache window provided by the user via the composable function arguments. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isUsingDynamicDefaultCacheWindowInGrids()` Controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/LazyVerticalGrid.composable#LazyVerticalGrid(androidx.compose.foundation.lazy.grid.GridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.grid.LazyGridState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/LazyHorizontalGrid.composable#LazyHorizontalGrid(androidx.compose.foundation.lazy.grid.GridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.grid.LazyGridState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` use a dynamic default cache window. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isUsingDynamicDefaultCacheWindowInLists()` Controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyRow.composable#LazyRow(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` use a dynamic default cache window. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isUsingDynamicDefaultCacheWindowInStaggeredGrids()` Controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/staggeredgrid/LazyVerticalStaggeredGrid.composable#LazyVerticalStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.ui.unit.Dp,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/staggeredgrid/LazyHorizontalStaggeredGrid.composable#LazyHorizontalStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.unit.Dp,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` use a dynamic default cache window. | Cmn |

## Public properties

### isAbsorbNonGestureNestedScrollInPagerFixEnabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isAbsorbNonGestureNestedScrollInPagerFixEnabled: Boolean
```

This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/pager/package-summary#Pager(androidx.compose.ui.Modifier,androidx.compose.foundation.pager.PagerState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.gestures.Orientation,androidx.compose.foundation.gestures.TargetedFlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,kotlin.Int,androidx.compose.ui.unit.Dp,androidx.compose.foundation.pager.PageSize,androidx.compose.ui.input.nestedscroll.NestedScrollConnection,kotlin.Function1,androidx.compose.ui.Alignment.Horizontal,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.gestures.snapping.SnapPosition,androidx.compose.foundation.gestures.BringIntoViewSpec,kotlin.Function2)`'s default nested scroll connection absorbs unconsumed main-axis deltas during non-gesture scrolls (such as accessibility actions) to prevent synthetic scrolls from accidentally dragging the parent Pager.

### isAnchoredDraggableTargetValueCalculationFixEnabled

Cmn Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.11.0)

```
var isAnchoredDraggableTargetValueCalculationFixEnabled: Boolean
```

With this flag enabled, `https://developer.android.com/reference/kotlin/androidx/compose/foundation/gestures/AnchoredDraggableState#targetValue()` correctly returns the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/gestures/AnchoredDraggableState#currentValue()` when no `https://developer.android.com/reference/kotlin/androidx/compose/foundation/gestures/AnchoredDraggableState#anchoredDrag(androidx.compose.foundation.MutatePriority,kotlin.coroutines.SuspendFunction2)` is in progress. Previously, `https://developer.android.com/reference/kotlin/androidx/compose/foundation/gestures/AnchoredDraggableState#targetValue()` incorrectly returned the last-inserted anchor when there were two or more anchors with the same offset, for example: `DraggableAnchors { Expanded at 100f; HalfExpanded at 0f; Hidden at 0f;}` Disabling the flag restores this previous behavior.

### isBasicTextFieldHeightInLinesOptimizationEnabled

Cmn Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.12.0)

```
var isBasicTextFieldHeightInLinesOptimizationEnabled: Boolean
```

This flag controls performance optimizations related to `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)`'s internal calculations of the minimum and maximum height.

### isBasicTextFieldMinSizeOptimizationEnabled

Cmn Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.11.0)

```
var isBasicTextFieldMinSizeOptimizationEnabled: Boolean
```

This flag controls performance optimizations related to `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)`'s internal min height calculations.

### isBasicTextFieldSizeOptimizationEnabled

Cmn Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.12.0)

```
var isBasicTextFieldSizeOptimizationEnabled: Boolean
```

This flag controls performance optimizations related to squashing multiple modifiers responsible for providing default measurement of the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)` into one.

### isBasicTextFieldStyledTextEnabled

Cmn Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.12.0)

```
var isBasicTextFieldStyledTextEnabled: Boolean
```

This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)`'s formatted text features are enabled.

### isBorderMatchesOutlineBoundsFixEnabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isBorderMatchesOutlineBoundsFixEnabled: Boolean
```

Controls whether the new `https://developer.android.com/reference/kotlin/androidx/compose/foundation/border.modifier#(androidx.compose.ui.Modifier).border(androidx.compose.foundation.BorderStroke,androidx.compose.ui.graphics.Shape)` implementation renders using the bounds of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Outline` created by the provided shape. Previously, this behavior was inconsistent and sometimes used the outline bounds, and sometimes used the Modifier bounds. For most cases, when using high level shapes such as `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/package-summary#RectangleShape()` and `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/RoundedCornerShape` this has no effect.

This flag only takes effect when `https://developer.android.com/reference/kotlin/androidx/compose/foundation/ComposeFoundationFlags#isNewBorderImplementationEnabled()` is enabled.

### isCacheWindowForPagerEnabled

Cmn Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.10.0)

```
var isCacheWindowForPagerEnabled: Boolean
```

With this flag on, Pager will use `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` as the default prefetching strategy, instead of 1 item in the direction of the scroll. The window used will be 1 view port AFTER the currently composed items, this includes visible and items composed through beyond bounds.

### isCacheWindowLookaheadCheckEnabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isCacheWindowLookaheadCheckEnabled: Boolean
```

This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` checks if the number of visible items has changed across iterations without scroll deltas (such as when changing lookahead window sizes) and refills the cache window if needed.

### isDragNodeOffsetDoubleCountingFixEnabled

Cmn Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.12.0)

```
var isDragNodeOffsetDoubleCountingFixEnabled: Boolean
```

This flag controls whether the legacy nodeOffset logic in DragGestureNode and IndirectPointerInputDragCycleDetector is disabled. Previously, VelocityTracker used local coordinates, necessitating manual point adjustment tracking.

### isDraggableInitialPassConsumptionFixEnabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isDraggableInitialPassConsumptionFixEnabled: Boolean
```

This flag controls the fix where we prioritize consumption on initial pass in Draggable. If a drag gesture started immediately, it should block subsequent nested gestures because the initial down was consumed.

### isDraggableVelocityTrackerFixEnabled

Cmn Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.12.0)

```
var isDraggableVelocityTrackerFixEnabled: Boolean
```

This flag controls whether the fix for velocity tracker usage in Draggable and related classes is enabled to a) properly track velocity per pointer and b) make sure to also take the pointer events into account that don't move at the beginning of the gesture in order to increase the stability of the computed velocity.

### isDraggableZeroDeltaConsumptionEnabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isDraggableZeroDeltaConsumptionEnabled: Boolean
```

This flag controls the fix where draggable was ignoring and not consuming zero delta events. This caused issues with the gesture pickup feature. When this flag is enabled, zero delta events will be consumed (after a drag gesture has started).

### isInheritedTextStyleEnabled

Cmn Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.11.0)

```
var isInheritedTextStyleEnabled: Boolean
```

Whether to support inherited text styles. If enabled, text styles set by the styles API will be inherited by text composables contained in a style box.

### isKeepAroundDuringLookaheadDisabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isKeepAroundDuringLookaheadDisabled: Boolean
```

This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` only executes `keepAroundItems` during non-lookahead (approach) measure passes in `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/package-summary#LazyList(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,kotlin.Int,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`, `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/package-summary#LazyGrid(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.grid.LazyGridState,androidx.compose.foundation.lazy.grid.LazyGridSlotsProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`, and `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/staggeredgrid/package-summary#LazyStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState,androidx.compose.foundation.gestures.Orientation,androidx.compose.foundation.lazy.staggeredgrid.LazyGridStaggeredGridSlotsProvider,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`.

### isLazyListItemAnimatorVisibleBoundsFixEnabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isLazyListItemAnimatorVisibleBoundsFixEnabled: Boolean
```

This flag controls whether lazy list measure passes calculate `firstVisibleIndex` and `lastVisibleIndex` from layout visible items before item placement animations run, preventing moving-away items added by `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutItemAnimator` from corrupting visible item bounds and causing unwanted composition in prefetch or cache window strategies.

### isLinkMinimumTouchTargetSizeZeroEnabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isLinkMinimumTouchTargetSizeZeroEnabled: Boolean
```

Disable minimum touch target expansion for inline links. Touch target expansion for multi-line links causes incorrect clicks on plain text on the same lines because it uses layout bounds (bounding box of multi-line path) instead of clipped shape.

### isMouseSelectionBetweenTextEnabled

Cmn Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.12.0)

```
var isMouseSelectionBetweenTextEnabled: Boolean
```

This flag controls whether it's possible to start selecting (via the mouse) text in a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/selection/SelectionContainer.composable#SelectionContainer(androidx.compose.ui.Modifier,kotlin.Function0)` by dragging from the areas between the text selectables.

### isMultiLaneCacheWindowEnabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isMultiLaneCacheWindowEnabled: Boolean
```

With this flag on, `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` will support multi-lane configurations.

### isNewBorderImplementationEnabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isNewBorderImplementationEnabled: Boolean
```

Whether to use an updated implementation to render borders in `https://developer.android.com/reference/kotlin/androidx/compose/foundation/border.modifier#(androidx.compose.ui.Modifier).border(androidx.compose.foundation.BorderStroke,androidx.compose.ui.graphics.Shape)`. If disabled, the old border implementation will be used instead.

### isNewContextMenuEnabled

Cmn Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.0)

```
var isNewContextMenuEnabled: Boolean
```

Whether to use the new context menu API and default implementations in `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/selection/SelectionContainer.composable#SelectionContainer(androidx.compose.ui.Modifier,kotlin.Function0)`, and all `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)`s. If false, the previous context menu that has no public APIs will be used instead.

### isPreferDefaultCacheWindowOverPrefetchStrategyLazyGrid

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isPreferDefaultCacheWindowOverPrefetchStrategyLazyGrid: Boolean
```

This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/package-summary#LazyGrid(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.grid.LazyGridState,androidx.compose.foundation.lazy.grid.LazyGridSlotsProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` prefers using the default `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` over `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/LazyGridPrefetchStrategy`.

### isPreferDefaultCacheWindowOverPrefetchStrategyLazyList

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isPreferDefaultCacheWindowOverPrefetchStrategyLazyList: Boolean
```

This flag controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/package-summary#LazyList(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,kotlin.Int,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` prefers using the default `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` over `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListPrefetchStrategy`.

### isReverseLayoutNestedScrollConnectionInPagerFixEnabled

Cmn Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.11.0)

```
var isReverseLayoutNestedScrollConnectionInPagerFixEnabled: Boolean
```

This flag controls the fix where we correctly dispatch deltas in pager's default pageNestedScrollConnection by considering the role of reverse layout.

### isRoundedRectangleBorderRenderingFixEnabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isRoundedRectangleBorderRenderingFixEnabled: Boolean
```

Controls a fix for using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/border.modifier#(androidx.compose.ui.Modifier).border(androidx.compose.foundation.BorderStroke,androidx.compose.ui.graphics.Shape)` with custom shape implementations that return `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Outline.Rounded` where the outline does not start at (0,0). For most cases, such as when using a high level `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/RoundedCornerShape`, this flag should have no effect.

### isSelectionAutoScrollEnabled

Cmn Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.12.0)

```
var isSelectionAutoScrollEnabled: Boolean
```

This flag controls whether selecting text in `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/selection/SelectionContainer.composable#SelectionContainer(androidx.compose.ui.Modifier,kotlin.Function0)` causes scrollable ancestors of the text to be scrolled when the selecting pointer is dragged outside the scrollable's viewport.

### isSmartSelectionEnabled

Cmn Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.0)

```
var isSmartSelectionEnabled: Boolean
```

Whether to use the new smart selection feature in `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/selection/SelectionContainer.composable#SelectionContainer(androidx.compose.ui.Modifier,kotlin.Function0)` and all `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)`s.

### isTextFieldWaitWindowFocusForInputSessionEnabled

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isTextFieldWaitWindowFocusForInputSessionEnabled: Boolean
```

Controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/BasicTextField.composable#BasicTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.ui.text.TextStyle,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,androidx.compose.foundation.text.input.TextFieldLineLimits,kotlin.Function2,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.compose.ui.graphics.Brush,androidx.compose.foundation.text.input.OutputTransformation,androidx.compose.foundation.text.input.TextFieldDecorator,androidx.compose.foundation.ScrollState)` starts the input session only when the window is focused rather than immediately upon element focus. When enabled, if the element gains focus while the window is not yet focused, starting the input session is deferred until the window gains focus.

### isUsingCacheWindowInStaggeredGrids

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isUsingCacheWindowInStaggeredGrids: Boolean
```

With this flag enabled, `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/staggeredgrid/package-summary#LazyStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState,androidx.compose.foundation.gestures.Orientation,androidx.compose.foundation.lazy.staggeredgrid.LazyGridStaggeredGridSlotsProvider,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` layouts will make use of a cache window, either a default cache window or the cache window provided by the user via the composable function arguments.

### isUsingDynamicDefaultCacheWindowInGrids

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isUsingDynamicDefaultCacheWindowInGrids: Boolean
```

Controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/LazyVerticalGrid.composable#LazyVerticalGrid(androidx.compose.foundation.lazy.grid.GridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.grid.LazyGridState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/LazyHorizontalGrid.composable#LazyHorizontalGrid(androidx.compose.foundation.lazy.grid.GridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.grid.LazyGridState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` use a dynamic default cache window.

When enabled, the ahead `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` size dynamically adapts to the average main axis size of visible lines, bounded between 10% and 50% of the viewport, rather than using a static viewport fraction.

### isUsingDynamicDefaultCacheWindowInLists

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isUsingDynamicDefaultCacheWindowInLists: Boolean
```

Controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyRow.composable#LazyRow(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` use a dynamic default cache window.

When enabled, the ahead `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` size dynamically adapts to the average size of visible items, bounded between 10% and 50% of the viewport, rather than using a static viewport fraction.

### isUsingDynamicDefaultCacheWindowInStaggeredGrids

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.13.0-rc01)

```
var isUsingDynamicDefaultCacheWindowInStaggeredGrids: Boolean
```

Controls whether `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/staggeredgrid/LazyVerticalStaggeredGrid.composable#LazyVerticalStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.ui.unit.Dp,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/staggeredgrid/LazyHorizontalStaggeredGrid.composable#LazyHorizontalStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.unit.Dp,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` use a dynamic default cache window.

When enabled, the ahead `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow` size dynamically adapts to the average size of visible items, bounded between 10% and 50% of the viewport, rather than using a static viewport fraction.