filter grids: fixed thumbnail request when scaling

This commit is contained in:
Thibault Deckers 2021-06-07 18:27:21 +09:00
parent 9a35e6e1d2
commit 2f7f66c8dc
4 changed files with 16 additions and 13 deletions

View file

@ -204,15 +204,11 @@ class _CollectionScaler extends StatelessWidget {
),
scaledBuilder: (entry, extent) => ThumbnailTheme(
extent: extent,
child: Container(
width: extent,
height: extent,
child: DecoratedThumbnail(
entry: entry,
tileExtent: context.read<TileExtentController>().effectiveExtentMax,
selectable: false,
highlightable: false,
),
child: DecoratedThumbnail(
entry: entry,
tileExtent: context.read<TileExtentController>().effectiveExtentMax,
selectable: false,
highlightable: false,
),
),
getScaledItemTileRect: (context, entry) {

View file

@ -78,7 +78,11 @@ class _GridScaleGestureDetectorState<T> extends State<GridScaleGestureDetector<T
final thumbnailCenter = renderMetaData.localToGlobal(Offset(halfExtent, halfExtent));
_overlayEntry = OverlayEntry(
builder: (context) => ScaleOverlay(
builder: (extent) => widget.scaledBuilder(_metadata!.item, extent),
builder: (extent) => SizedBox(
width: extent,
height: extent,
child: widget.scaledBuilder(_metadata!.item, extent),
),
center: thumbnailCenter,
viewportWidth: gridWidth,
gridBuilder: widget.gridBuilder,

View file

@ -24,7 +24,7 @@ import 'package:provider/provider.dart';
class DecoratedFilterChip extends StatelessWidget {
final CollectionFilter filter;
final double extent;
final double extent, thumbnailExtent;
final AvesEntry? coverEntry;
final bool pinned, highlightable;
final FilterCallback? onTap;
@ -34,12 +34,14 @@ class DecoratedFilterChip extends StatelessWidget {
Key? key,
required this.filter,
required this.extent,
double? thumbnailExtent,
this.coverEntry,
this.pinned = false,
this.highlightable = true,
this.onTap,
this.onLongPress,
}) : super(key: key);
}) : thumbnailExtent = thumbnailExtent ?? extent,
super(key: key);
@override
Widget build(BuildContext context) {
@ -90,7 +92,7 @@ class DecoratedFilterChip extends StatelessWidget {
)
: RasterImageThumbnail(
entry: entry,
extent: extent,
extent: thumbnailExtent,
);
final titlePadding = min<double>(4.0, extent / 32);
final borderRadius = BorderRadius.all(radius(extent));

View file

@ -391,6 +391,7 @@ class _FilterScaler<T extends CollectionFilter> extends StatelessWidget {
return DecoratedFilterChip(
filter: filter,
extent: extent,
thumbnailExtent: context.read<TileExtentController>().effectiveExtentMax,
pinned: pinnedFilters.contains(filter),
highlightable: false,
);