diff --git a/lib/screens/shared/media/components/item_logo.dart b/lib/screens/shared/media/components/item_logo.dart index fd9fdcd..5b215a9 100644 --- a/lib/screens/shared/media/components/item_logo.dart +++ b/lib/screens/shared/media/components/item_logo.dart @@ -17,8 +17,10 @@ class ItemLogo extends StatelessWidget { @override Widget build(BuildContext context) { final logo = item.getPosters?.logo; + final size = MediaQuery.sizeOf(context); + final maxHeight = size.height * 0.45; final textWidget = Container( - height: 512, + height: maxHeight, alignment: imageAlignment, child: Text( item.parentBaseModel.name, @@ -33,13 +35,14 @@ class ItemLogo extends StatelessWidget { ); return logo != null ? ConstrainedBox( - constraints: const BoxConstraints(maxWidth: 500, maxHeight: 500), + constraints: BoxConstraints(maxWidth: size.width * 0.35, maxHeight: maxHeight), child: FladderImage( image: logo, disableBlur: true, - alignment: imageAlignment, + stackFit: StackFit.passthrough, + alignment: Alignment.bottomLeft, imageErrorBuilder: (context, object, stack) => textWidget, - placeHolder: const SizedBox(height: 0), + placeHolder: textWidget, fit: BoxFit.contain, ), ) diff --git a/lib/screens/video_player/video_player_controls.dart b/lib/screens/video_player/video_player_controls.dart index 2741714..d795fcb 100644 --- a/lib/screens/video_player/video_player_controls.dart +++ b/lib/screens/video_player/video_player_controls.dart @@ -250,8 +250,9 @@ class _DesktopControlsState extends ConsumerState { Padding( padding: const EdgeInsets.symmetric(horizontal: 12), child: Row( + spacing: 16, mainAxisSize: MainAxisSize.max, - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, children: [ IconButton( onPressed: () => minimizePlayer(context), @@ -260,26 +261,26 @@ class _DesktopControlsState extends ConsumerState { size: 24, ), ), - const SizedBox(width: 16), if (currentItem != null) - Expanded( - child: ConstrainedBox( - constraints: BoxConstraints( - maxHeight: 150.clamp(50, MediaQuery.sizeOf(context).height * 0.25).toDouble(), - ), - child: ItemLogo( - item: currentItem, - imageAlignment: Alignment.topLeft, - textStyle: Theme.of(context).textTheme.headlineLarge, - ), + ConstrainedBox( + constraints: BoxConstraints( + maxHeight: 150.clamp(50, MediaQuery.sizeOf(context).height * 0.25).toDouble(), + ), + child: ItemLogo( + item: currentItem, + imageAlignment: Alignment.topLeft, + textStyle: Theme.of(context).textTheme.headlineLarge, ), ), - const SizedBox(width: 16), + const Spacer(), if (AdaptiveLayout.of(context).inputDevice == InputDevice.touch) - Tooltip( - message: context.localized.stop, - child: IconButton( - onPressed: () => closePlayer(), icon: const Icon(IconsaxPlusLinear.close_square))), + Align( + alignment: Alignment.centerRight, + child: Tooltip( + message: context.localized.stop, + child: IconButton( + onPressed: () => closePlayer(), icon: const Icon(IconsaxPlusLinear.close_square))), + ), ], ), ), diff --git a/lib/util/fladder_image.dart b/lib/util/fladder_image.dart index 2d60063..b46e30c 100644 --- a/lib/util/fladder_image.dart +++ b/lib/util/fladder_image.dart @@ -12,6 +12,7 @@ class FladderImage extends ConsumerWidget { final Widget Function(BuildContext context, Widget child, int? frame, bool wasSynchronouslyLoaded)? frameBuilder; final Widget Function(BuildContext context, Object object, StackTrace? stack)? imageErrorBuilder; final Widget? placeHolder; + final StackFit stackFit; final BoxFit fit; final BoxFit? blurFit; final AlignmentGeometry? alignment; @@ -22,6 +23,7 @@ class FladderImage extends ConsumerWidget { this.frameBuilder, this.imageErrorBuilder, this.placeHolder, + this.stackFit = StackFit.expand, this.fit = BoxFit.cover, this.blurFit, this.alignment, @@ -39,7 +41,7 @@ class FladderImage extends ConsumerWidget { } else { return Stack( key: Key(newImage.key), - fit: StackFit.expand, + fit: stackFit, children: [ if (!disableBlur && useBluredPlaceHolder && newImage.hash.isNotEmpty || blurOnly) BlurHash(