From 2f7f66c8dc49da51955d8b26369736b50b876764 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Mon, 7 Jun 2021 18:27:21 +0900 Subject: [PATCH] filter grids: fixed thumbnail request when scaling --- lib/widgets/collection/collection_grid.dart | 14 +++++--------- lib/widgets/common/scaling.dart | 6 +++++- .../filter_grids/common/decorated_filter_chip.dart | 8 +++++--- .../filter_grids/common/filter_grid_page.dart | 1 + 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/lib/widgets/collection/collection_grid.dart b/lib/widgets/collection/collection_grid.dart index 743c1188a..80a52f219 100644 --- a/lib/widgets/collection/collection_grid.dart +++ b/lib/widgets/collection/collection_grid.dart @@ -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().effectiveExtentMax, - selectable: false, - highlightable: false, - ), + child: DecoratedThumbnail( + entry: entry, + tileExtent: context.read().effectiveExtentMax, + selectable: false, + highlightable: false, ), ), getScaledItemTileRect: (context, entry) { diff --git a/lib/widgets/common/scaling.dart b/lib/widgets/common/scaling.dart index 08d287aff..9bd88fa89 100644 --- a/lib/widgets/common/scaling.dart +++ b/lib/widgets/common/scaling.dart @@ -78,7 +78,11 @@ class _GridScaleGestureDetectorState extends State 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, diff --git a/lib/widgets/filter_grids/common/decorated_filter_chip.dart b/lib/widgets/filter_grids/common/decorated_filter_chip.dart index 7461a3f55..ef2227af4 100644 --- a/lib/widgets/filter_grids/common/decorated_filter_chip.dart +++ b/lib/widgets/filter_grids/common/decorated_filter_chip.dart @@ -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(4.0, extent / 32); final borderRadius = BorderRadius.all(radius(extent)); diff --git a/lib/widgets/filter_grids/common/filter_grid_page.dart b/lib/widgets/filter_grids/common/filter_grid_page.dart index e48784b28..ebdfd6c7a 100644 --- a/lib/widgets/filter_grids/common/filter_grid_page.dart +++ b/lib/widgets/filter_grids/common/filter_grid_page.dart @@ -391,6 +391,7 @@ class _FilterScaler extends StatelessWidget { return DecoratedFilterChip( filter: filter, extent: extent, + thumbnailExtent: context.read().effectiveExtentMax, pinned: pinnedFilters.contains(filter), highlightable: false, );