selection_marquee 0.2.0
selection_marquee: ^0.2.0 copied to clipboard
A highly customizable Flutter package for drag-to-select functionality with auto-scrolling and desktop-style features.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on "Keep a Changelog" and this project adheres to Semantic Versioning.
0.2.0 #
New Features
-
Drag-to-Scroll Management: Added
dragScrollBehaviortoSelectionMarquee. It provides explicit control (auto,enabled,disabled) over default drag-scrolling to prevent "gesture fighting" with marquee selection.- Auto (Default): Disables drag-scroll on Desktop (prioritizing marquee) and enables it on Mobile (prioritizing touch scroll).
0.1.0 #
New Features
-
Desktop-Grade Interaction:
-
Keyboard Modifiers:
Ctrl/Cmd+ Drag to invert selection;Shift+ Drag to add to selection. -
Click Interaction:
-
Click: Select single item (replaces previous selection).
-
Ctrl + Click: Toggle item selection.
-
Shift + Click: Range selection (selects all items between the last anchor and current item).
-
-
Context Menu (Right-Click): Added
onContextMenucallback toSelectableItem. Smartly handles auto-selection (selects unselected items on right-click) before showing the menu. -
Keyboard Shortcuts: Built-in
Ctrl+A(Select All) andEsc(Clear Selection).
-
-
Virtualization Support: Added
allItemsGettertoSelectionControllerto support 'Select All' in virtualized lists (likeListView.builder) where not all items are currently rendered. -
New Parameters:
enableKeyboardDragandenableShortcutsinSelectionMarquee.
Bug Fixes
- Scroll Anchoring: Fixed an issue where the selection marquee start point would "float" on the screen when the list scrolled. The selection box now correctly follows the content during auto-scrolling.
Internal
- Updated
SelectionControllerto track registered items, enablingselectAll()functionality for visible items without manual list management.
0.0.1 - 2025-12-19 #
Added #
- Initial public release of
selection_marquee. - Marquee/drag-to-select widget with mouse and touch support (
SelectionMarquee). SelectionControllerAPI andSelectableItemhelper for wiring items.- Edge auto-scroll with configurable speed, edge zone fraction, minimum factor, and two modes (
jump,animate). SelectionDecorationto customize selection appearance:solid,dashed,dotted,marchingAnts,borderWidth,dashLength,gapLength,borderRadius, andmarchingSpeed.- Example app with live tuning controls for auto-scroll and selection decoration, plus a collapsible sidebar showing estimated velocity.
- README, LICENSE (MIT), and a GitHub Actions workflow to deploy the example web build to GitHub Pages.