Environment Information
- Package version(s):
com.microsoft.fluentui:FluentUIAndroid:0.3.12
- Android SDK version:
compileSdk 35 / targetSdk 35, tested on Android 15
Please provide a reproduction of the bug:
Reproduces on a stock BottomDrawer containing a scrollable list (LazyColumn) when interacted with via a mouse (InputDevice.SOURCE_MOUSE) instead of a finger.
Steps (against a BottomDrawer demo or our host app):
- Run on an Android device with a connected mouse (Bluetooth/USB, Samsung DeX, or a Chromebook with Android subsystem).
- Open a
BottomDrawer whose content is taller than the drawer's expanded height (e.g. an account list).
- With the mouse pointer over the top region of the drawer (drag handle / header area), press → drag up/down → release at varying speeds.
- Repeat the same gestures with a finger on the touchscreen for comparison.
on Samsung Galaxy S25 / Android 15. Internal tracking: Microsoft ADO OS#60001005 (resolved as External against this library).
Actual behavior:
- Slow mouse press-and-drag → works; inner list scrolls.
- Fast mouse flick / fling → either toggles the drawer's expand/collapse state, or becomes a no-op when the drawer is already fully expanded. Fling velocity is not forwarded to the inner scrollable child.
- The same gestures with a finger on the touchscreen work as expected.
Suspected cause: the drawer's gesture / nested-scroll handling does not differentiate SOURCE_MOUSE (or SOURCE_CLASS_POINTER) from SOURCE_TOUCHSCREEN. Fling thresholds tuned for finger swipes classify mouse drag velocity as a drawer-state fling and consume it, instead of dispatching it through the nested-scroll connection to the inner content. When drawerState == Expanded, the consumed fling has nowhere to go and is dropped.
Expected behavior:
Mouse drag and fling on the drawer should behave the same as finger drag/fling:
- Drag deltas should scroll the inner content when the drawer is at its expanded state.
- Unconsumed fling velocity from the drawer should be forwarded to the inner scrollable child via nested scroll, regardless of input source.
- Pointer-source events should ideally bypass the touch-tuned fling classifier (or use a pointer-appropriate threshold).
Priorities and help requested:
Are you willing to submit a PR to fix? No (happy to test a fix and provide additional repro on the affected device.)
Requested priority: Normal (impacts mouse / DeX / Chromebook users; finger input unaffected; no host-app workaround short of forking BottomDrawer.)
Products/applications affected: Microsoft Windows App for Android (WAA) — Drawer used for the account switcher; any consumer of fluentui_drawer's BottomDrawer with scrollable content is likely affected when the device uses pointer-class input.
Environment Information
com.microsoft.fluentui:FluentUIAndroid:0.3.12compileSdk 35/targetSdk 35, tested on Android 15Please provide a reproduction of the bug:
Reproduces on a stock
BottomDrawercontaining a scrollable list (LazyColumn) when interacted with via a mouse (InputDevice.SOURCE_MOUSE) instead of a finger.Steps (against a
BottomDrawerdemo or our host app):BottomDrawerwhose content is taller than the drawer's expanded height (e.g. an account list).on Samsung Galaxy S25 / Android 15. Internal tracking: Microsoft ADO
OS#60001005(resolved as External against this library).Actual behavior:
Suspected cause: the drawer's gesture / nested-scroll handling does not differentiate
SOURCE_MOUSE(orSOURCE_CLASS_POINTER) fromSOURCE_TOUCHSCREEN. Fling thresholds tuned for finger swipes classify mouse drag velocity as a drawer-state fling and consume it, instead of dispatching it through the nested-scroll connection to the inner content. WhendrawerState == Expanded, the consumed fling has nowhere to go and is dropped.Expected behavior:
Mouse drag and fling on the drawer should behave the same as finger drag/fling:
Priorities and help requested:
Are you willing to submit a PR to fix? No (happy to test a fix and provide additional repro on the affected device.)
Requested priority: Normal (impacts mouse / DeX / Chromebook users; finger input unaffected; no host-app workaround short of forking
BottomDrawer.)Products/applications affected: Microsoft Windows App for Android (WAA) — Drawer used for the account switcher; any consumer of
fluentui_drawer'sBottomDrawerwith scrollable content is likely affected when the device uses pointer-class input.