From c6230df01d81e7b958a48ba74f4f59824945c7f5 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Sun, 19 Mar 2023 12:18:06 +0100 Subject: [PATCH] fixes for font scale --- lib/widgets/collection/app_bar.dart | 12 ++- lib/widgets/collection/query_bar.dart | 7 +- lib/widgets/common/app_bar/app_bar_title.dart | 3 +- .../common/basic/font_size_icon_theme.dart | 22 ++++++ lib/widgets/common/basic/popup/menu_row.dart | 21 ----- lib/widgets/common/basic/query_bar.dart | 78 ++++++++++--------- lib/widgets/common/identity/aves_app_bar.dart | 2 +- .../common/identity/aves_filter_chip.dart | 3 +- lib/widgets/debug/app_debug_page.dart | 3 +- .../entry_editors/rename_entry_set_page.dart | 3 +- .../dialogs/pick_dialogs/album_pick_page.dart | 18 +++-- lib/widgets/filter_grids/common/app_bar.dart | 19 +++-- .../filter_grids/common/query_bar.dart | 7 +- lib/widgets/map/map_page.dart | 3 +- .../privacy/file_picker/file_picker_page.dart | 3 +- lib/widgets/settings/settings_page.dart | 3 +- lib/widgets/viewer/info/info_app_bar.dart | 3 +- .../viewer/overlay/viewer_buttons.dart | 3 +- 18 files changed, 125 insertions(+), 88 deletions(-) create mode 100644 lib/widgets/common/basic/font_size_icon_theme.dart diff --git a/lib/widgets/collection/app_bar.dart b/lib/widgets/collection/app_bar.dart index de01c21f4..bc396e55e 100644 --- a/lib/widgets/collection/app_bar.dart +++ b/lib/widgets/collection/app_bar.dart @@ -23,6 +23,7 @@ import 'package:aves/widgets/common/action_controls/togglers/favourite.dart'; import 'package:aves/widgets/common/action_controls/togglers/title_search.dart'; import 'package:aves/widgets/common/app_bar/app_bar_subtitle.dart'; import 'package:aves/widgets/common/app_bar/app_bar_title.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/basic/popup/container.dart'; import 'package:aves/widgets/common/basic/popup/expansion_panel.dart'; import 'package:aves/widgets/common/basic/popup/menu_row.dart'; @@ -220,7 +221,8 @@ class _CollectionAppBarState extends State with SingleTickerPr } double get appBarContentHeight { - double height = kToolbarHeight; + final textScaleFactor = context.read().textScaleFactor; + double height = kToolbarHeight * textScaleFactor; if (settings.useTvLayout) { height += CaptionedButton.getTelevisionButtonHeight(context); } @@ -228,7 +230,7 @@ class _CollectionAppBarState extends State with SingleTickerPr height += FilterBar.preferredHeight; } if (context.read().enabled) { - height += EntryQueryBar.preferredHeight; + height += EntryQueryBar.getPreferredHeight(textScaleFactor); } return height; } @@ -375,12 +377,14 @@ class _CollectionAppBarState extends State with SingleTickerPr final browsingQuickActions = settings.collectionBrowsingQuickActions; final selectionQuickActions = isTrash ? [EntrySetAction.delete, EntrySetAction.restore] : settings.collectionSelectionQuickActions; final quickActionButtons = (isSelecting ? selectionQuickActions : browsingQuickActions).where(isVisible).map( - (action) => _buildButtonIcon(context, action, enabled: canApply(action), selection: selection), + (action) => FontSizeIconTheme( + child: _buildButtonIcon(context, action, enabled: canApply(action), selection: selection), + ), ); return [ ...quickActionButtons, - MenuIconTheme( + FontSizeIconTheme( child: PopupMenuButton( // key is expected by test driver key: const Key('appbar-menu-button'), diff --git a/lib/widgets/collection/query_bar.dart b/lib/widgets/collection/query_bar.dart index e9bc1cc68..005c7ec02 100644 --- a/lib/widgets/collection/query_bar.dart +++ b/lib/widgets/collection/query_bar.dart @@ -10,8 +10,6 @@ class EntryQueryBar extends StatefulWidget { final ValueNotifier queryNotifier; final FocusNode focusNode; - static const preferredHeight = kToolbarHeight; - const EntryQueryBar({ super.key, required this.queryNotifier, @@ -20,6 +18,8 @@ class EntryQueryBar extends StatefulWidget { @override State createState() => _EntryQueryBarState(); + + static double getPreferredHeight(double textScaleFactor) => QueryBar.getPreferredHeight(textScaleFactor); } class _EntryQueryBarState extends State { @@ -52,8 +52,9 @@ class _EntryQueryBarState extends State { @override Widget build(BuildContext context) { + final textScaleFactor = context.select((mq) => mq.textScaleFactor); return Container( - height: EntryQueryBar.preferredHeight, + height: EntryQueryBar.getPreferredHeight(textScaleFactor), alignment: Alignment.topCenter, child: Selector, bool>( selector: (context, selection) => !selection.isSelecting, diff --git a/lib/widgets/common/app_bar/app_bar_title.dart b/lib/widgets/common/app_bar/app_bar_title.dart index 09a7897a4..19283c9d9 100644 --- a/lib/widgets/common/app_bar/app_bar_title.dart +++ b/lib/widgets/common/app_bar/app_bar_title.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class InteractiveAppBarTitle extends StatelessWidget { final GestureTapCallback? onTap; @@ -19,7 +20,7 @@ class InteractiveAppBarTitle extends StatelessWidget { child: Container( alignment: AlignmentDirectional.centerStart, color: Colors.transparent, - height: kToolbarHeight, + height: kToolbarHeight * context.select((mq) => mq.textScaleFactor), child: child, ), ); diff --git a/lib/widgets/common/basic/font_size_icon_theme.dart b/lib/widgets/common/basic/font_size_icon_theme.dart new file mode 100644 index 000000000..ea43d4449 --- /dev/null +++ b/lib/widgets/common/basic/font_size_icon_theme.dart @@ -0,0 +1,22 @@ +import 'package:flutter/widgets.dart'; + +// scale icons according to text scale +class FontSizeIconTheme extends StatelessWidget { + final Widget child; + + const FontSizeIconTheme({ + super.key, + required this.child, + }); + + @override + Widget build(BuildContext context) { + final iconTheme = IconTheme.of(context); + return IconTheme( + data: iconTheme.copyWith( + size: iconTheme.size! * MediaQuery.textScaleFactorOf(context), + ), + child: child, + ); + } +} diff --git a/lib/widgets/common/basic/popup/menu_row.dart b/lib/widgets/common/basic/popup/menu_row.dart index 28442c841..33773c04f 100644 --- a/lib/widgets/common/basic/popup/menu_row.dart +++ b/lib/widgets/common/basic/popup/menu_row.dart @@ -32,24 +32,3 @@ class MenuRow extends StatelessWidget { ); } } - -// scale icons according to text scale -class MenuIconTheme extends StatelessWidget { - final Widget child; - - const MenuIconTheme({ - super.key, - required this.child, - }); - - @override - Widget build(BuildContext context) { - final iconTheme = IconTheme.of(context); - return IconTheme( - data: iconTheme.copyWith( - size: iconTheme.size! * MediaQuery.textScaleFactorOf(context), - ), - child: child, - ); - } -} diff --git a/lib/widgets/common/basic/query_bar.dart b/lib/widgets/common/basic/query_bar.dart index 4eb44b912..2c75c93aa 100644 --- a/lib/widgets/common/basic/query_bar.dart +++ b/lib/widgets/common/basic/query_bar.dart @@ -1,6 +1,7 @@ import 'package:aves/theme/durations.dart'; import 'package:aves/theme/icons.dart'; import 'package:aves/utils/debouncer.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:flutter/material.dart'; @@ -24,6 +25,8 @@ class QueryBar extends StatefulWidget { @override State createState() => _QueryBarState(); + + static double getPreferredHeight(double textScaleFactor) => kToolbarHeight * textScaleFactor; } class _QueryBarState extends State { @@ -53,45 +56,50 @@ class _QueryBarState extends State { return DefaultTextStyle( style: Theme.of(context).textTheme.bodyMedium!, - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Expanded( - child: TextField( - controller: _controller, - focusNode: widget.focusNode, - decoration: InputDecoration( - icon: Padding( - padding: widget.leadingPadding ?? const EdgeInsetsDirectional.only(start: 16), - child: Icon(widget.icon ?? AIcons.filter), - ), - hintText: widget.hintText ?? MaterialLocalizations.of(context).searchFieldLabel, - hintStyle: Theme.of(context).inputDecorationTheme.hintStyle, - ), - textInputAction: TextInputAction.search, - onChanged: (s) => _debouncer(() => queryNotifier.value = s.trim()), - enabled: widget.editable, - ), - ), - ConstrainedBox( - constraints: const BoxConstraints(minWidth: 16), - child: ValueListenableBuilder( - valueListenable: _controller, - builder: (context, value, child) => AnimatedSwitcher( - duration: Durations.appBarActionChangeAnimation, - transitionBuilder: (child, animation) => FadeTransition( - opacity: animation, - child: SizeTransition( - axis: Axis.horizontal, - sizeFactor: animation, - child: child, + child: FontSizeIconTheme( + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: TextField( + controller: _controller, + focusNode: widget.focusNode, + decoration: InputDecoration( + icon: Padding( + padding: widget.leadingPadding ?? const EdgeInsetsDirectional.only(start: 16), + // set theme at this level because `InputDecoration` defines its own `IconTheme` with a fixed size + child: FontSizeIconTheme( + child: Icon(widget.icon ?? AIcons.filter), + ), ), + hintText: widget.hintText ?? MaterialLocalizations.of(context).searchFieldLabel, + hintStyle: Theme.of(context).inputDecorationTheme.hintStyle, ), - child: value.text.isNotEmpty ? clearButton : const SizedBox(), + textInputAction: TextInputAction.search, + onChanged: (s) => _debouncer(() => queryNotifier.value = s.trim()), + enabled: widget.editable, ), ), - ), - ], + ConstrainedBox( + constraints: const BoxConstraints(minWidth: 16), + child: ValueListenableBuilder( + valueListenable: _controller, + builder: (context, value, child) => AnimatedSwitcher( + duration: Durations.appBarActionChangeAnimation, + transitionBuilder: (child, animation) => FadeTransition( + opacity: animation, + child: SizeTransition( + axis: Axis.horizontal, + sizeFactor: animation, + child: child, + ), + ), + child: value.text.isNotEmpty ? clearButton : const SizedBox(), + ), + ), + ), + ], + ), ), ); } diff --git a/lib/widgets/common/identity/aves_app_bar.dart b/lib/widgets/common/identity/aves_app_bar.dart index 7ad74c6f4..8e787f222 100644 --- a/lib/widgets/common/identity/aves_app_bar.dart +++ b/lib/widgets/common/identity/aves_app_bar.dart @@ -55,7 +55,7 @@ class AvesAppBar extends StatelessWidget { child: Column( children: [ SizedBox( - height: kToolbarHeight, + height: kToolbarHeight * context.select((mq) => mq.textScaleFactor), child: Row( children: [ leading != null diff --git a/lib/widgets/common/identity/aves_filter_chip.dart b/lib/widgets/common/identity/aves_filter_chip.dart index 49062e520..00151a3c4 100644 --- a/lib/widgets/common/identity/aves_filter_chip.dart +++ b/lib/widgets/common/identity/aves_filter_chip.dart @@ -14,6 +14,7 @@ import 'package:aves/theme/colors.dart'; import 'package:aves/theme/durations.dart'; import 'package:aves/theme/icons.dart'; import 'package:aves/widgets/collection/filter_bar.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/basic/popup/menu_row.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:aves/widgets/common/providers/media_query_data_provider.dart'; @@ -127,7 +128,7 @@ class AvesFilterChip extends StatefulWidget { } return PopupMenuItem( value: action, - child: MenuIconTheme( + child: FontSizeIconTheme( child: MenuRow(text: text, icon: action.getIcon()), ), ); diff --git a/lib/widgets/debug/app_debug_page.dart b/lib/widgets/debug/app_debug_page.dart index 51d102076..ca723e04e 100644 --- a/lib/widgets/debug/app_debug_page.dart +++ b/lib/widgets/debug/app_debug_page.dart @@ -8,6 +8,7 @@ import 'package:aves/model/source/collection_source.dart'; import 'package:aves/services/analysis_service.dart'; import 'package:aves/theme/durations.dart'; import 'package:aves/utils/android_file_utils.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/basic/popup/menu_row.dart'; import 'package:aves/widgets/common/basic/scaffold.dart'; import 'package:aves/widgets/common/behaviour/pop/scope.dart'; @@ -49,7 +50,7 @@ class _AppDebugPageState extends State { appBar: AppBar( title: const Text('Debug'), actions: [ - MenuIconTheme( + FontSizeIconTheme( child: PopupMenuButton( // key is expected by test driver key: const Key('appbar-menu-button'), diff --git a/lib/widgets/dialogs/entry_editors/rename_entry_set_page.dart b/lib/widgets/dialogs/entry_editors/rename_entry_set_page.dart index 55d3f68d7..8399a0e32 100644 --- a/lib/widgets/dialogs/entry_editors/rename_entry_set_page.dart +++ b/lib/widgets/dialogs/entry_editors/rename_entry_set_page.dart @@ -7,6 +7,7 @@ import 'package:aves/theme/durations.dart'; import 'package:aves/theme/icons.dart'; import 'package:aves/utils/constants.dart'; import 'package:aves/widgets/collection/collection_grid.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/basic/popup/menu_row.dart'; import 'package:aves/widgets/common/basic/scaffold.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; @@ -81,7 +82,7 @@ class _RenameEntrySetPageState extends State { autofocus: true, ), ), - MenuIconTheme( + FontSizeIconTheme( child: PopupMenuButton( itemBuilder: (context) { return [ diff --git a/lib/widgets/dialogs/pick_dialogs/album_pick_page.dart b/lib/widgets/dialogs/pick_dialogs/album_pick_page.dart index b36a59bcb..044a73124 100644 --- a/lib/widgets/dialogs/pick_dialogs/album_pick_page.dart +++ b/lib/widgets/dialogs/pick_dialogs/album_pick_page.dart @@ -13,7 +13,7 @@ import 'package:aves/model/vaults/details.dart'; import 'package:aves/model/vaults/vaults.dart'; import 'package:aves/theme/durations.dart'; import 'package:aves/theme/icons.dart'; -import 'package:aves/widgets/common/basic/popup/menu_row.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:aves/widgets/common/identity/aves_filter_chip.dart'; import 'package:aves/widgets/common/identity/buttons/captioned_button.dart'; @@ -209,12 +209,16 @@ class _AlbumPickPageState extends State<_AlbumPickPage> { }) { return [ if (widget.moveType != null) - ..._quickActions.where(isVisible).map((action) => IconButton( - icon: action.getIcon(), - onPressed: () => onActionSelected(action), - tooltip: action.getText(context), - )), - MenuIconTheme( + ..._quickActions.where(isVisible).map( + (action) => FontSizeIconTheme( + child: IconButton( + icon: action.getIcon(), + onPressed: () => onActionSelected(action), + tooltip: action.getText(context), + ), + ), + ), + FontSizeIconTheme( child: PopupMenuButton( itemBuilder: (context) { return _menuActions.where((v) => v == null || isVisible(v)).map((action) { diff --git a/lib/widgets/filter_grids/common/app_bar.dart b/lib/widgets/filter_grids/common/app_bar.dart index 1a1d7ffe6..729102408 100644 --- a/lib/widgets/filter_grids/common/app_bar.dart +++ b/lib/widgets/filter_grids/common/app_bar.dart @@ -11,6 +11,7 @@ import 'package:aves/theme/durations.dart'; import 'package:aves/widgets/common/action_controls/togglers/title_search.dart'; import 'package:aves/widgets/common/app_bar/app_bar_subtitle.dart'; import 'package:aves/widgets/common/app_bar/app_bar_title.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/basic/popup/menu_row.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:aves/widgets/common/identity/aves_app_bar.dart'; @@ -171,12 +172,13 @@ class _FilterGridAppBarState().textScaleFactor; + double height = kToolbarHeight * textScaleFactor; if (settings.useTvLayout) { height += CaptionedButton.getTelevisionButtonHeight(context); } if (context.read().enabled) { - height += FilterQueryBar.preferredHeight; + height += FilterQueryBar.getPreferredHeight(textScaleFactor); } return height; } @@ -226,7 +228,12 @@ class _FilterGridAppBarState _buildButtonIcon(context, actionDelegate, action, enabled: canApply(action)), + (action) => FontSizeIconTheme( + child: _buildButtonIcon(context, actionDelegate, action, enabled: canApply(action)), + ), ); return [ ...quickActionButtons, - MenuIconTheme( + FontSizeIconTheme( child: PopupMenuButton( itemBuilder: (context) { final generalMenuItems = ChipSetActions.general.where(isVisible).map( diff --git a/lib/widgets/filter_grids/common/query_bar.dart b/lib/widgets/filter_grids/common/query_bar.dart index 6ecffa88c..4f861b861 100644 --- a/lib/widgets/filter_grids/common/query_bar.dart +++ b/lib/widgets/filter_grids/common/query_bar.dart @@ -9,8 +9,6 @@ class FilterQueryBar extends StatelessWidget { final ValueNotifier queryNotifier; final FocusNode focusNode; - static const preferredHeight = kToolbarHeight; - const FilterQueryBar({ super.key, required this.queryNotifier, @@ -19,8 +17,9 @@ class FilterQueryBar extends StatelessWidget { @override Widget build(BuildContext context) { + final textScaleFactor = context.select((mq) => mq.textScaleFactor); return Container( - height: FilterQueryBar.preferredHeight, + height: getPreferredHeight(textScaleFactor), alignment: Alignment.topCenter, child: Selector>, bool>( selector: (context, selection) => !selection.isSelecting, @@ -33,4 +32,6 @@ class FilterQueryBar extends StatelessWidget { ), ); } + + static double getPreferredHeight(double textScaleFactor) => QueryBar.getPreferredHeight(textScaleFactor); } diff --git a/lib/widgets/map/map_page.dart b/lib/widgets/map/map_page.dart index 5cf00c41b..a74075970 100644 --- a/lib/widgets/map/map_page.dart +++ b/lib/widgets/map/map_page.dart @@ -18,6 +18,7 @@ import 'package:aves/theme/icons.dart'; import 'package:aves/utils/debouncer.dart'; import 'package:aves/widgets/collection/collection_page.dart'; import 'package:aves/widgets/collection/entry_set_action_delegate.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/basic/insets.dart'; import 'package:aves/widgets/common/basic/popup/menu_row.dart'; import 'package:aves/widgets/common/basic/scaffold.dart'; @@ -567,7 +568,7 @@ class _ContentState extends State<_Content> with SingleTickerProviderStateMixin PopupMenuItem _buildMenuItem(MapClusterAction action) { return PopupMenuItem( value: action, - child: MenuIconTheme( + child: FontSizeIconTheme( child: MenuRow( text: action.getText(context), icon: action.getIcon(), diff --git a/lib/widgets/settings/privacy/file_picker/file_picker_page.dart b/lib/widgets/settings/privacy/file_picker/file_picker_page.dart index c41580e78..33b496e60 100644 --- a/lib/widgets/settings/privacy/file_picker/file_picker_page.dart +++ b/lib/widgets/settings/privacy/file_picker/file_picker_page.dart @@ -6,6 +6,7 @@ import 'package:aves/theme/durations.dart'; import 'package:aves/theme/icons.dart'; import 'package:aves/utils/android_file_utils.dart'; import 'package:aves/utils/constants.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/basic/popup/menu_row.dart'; import 'package:aves/widgets/common/basic/scaffold.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; @@ -69,7 +70,7 @@ class _FilePickerPageState extends State { appBar: AppBar( title: Text(_getTitle(context)), actions: [ - MenuIconTheme( + FontSizeIconTheme( child: PopupMenuButton<_PickerAction>( itemBuilder: (context) { return [ diff --git a/lib/widgets/settings/settings_page.dart b/lib/widgets/settings/settings_page.dart index c917ffcde..d2f3ef4fc 100644 --- a/lib/widgets/settings/settings_page.dart +++ b/lib/widgets/settings/settings_page.dart @@ -11,6 +11,7 @@ import 'package:aves/theme/durations.dart'; import 'package:aves/theme/icons.dart'; import 'package:aves/widgets/common/action_mixins/feedback.dart'; import 'package:aves/widgets/common/app_bar/app_bar_title.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/basic/insets.dart'; import 'package:aves/widgets/common/basic/popup/menu_row.dart'; import 'package:aves/widgets/common/basic/scaffold.dart'; @@ -127,7 +128,7 @@ class _SettingsPageState extends State with FeedbackMixin { onPressed: () => _goToSearch(context), tooltip: MaterialLocalizations.of(context).searchFieldLabel, ), - MenuIconTheme( + FontSizeIconTheme( child: PopupMenuButton( itemBuilder: (context) { return [ diff --git a/lib/widgets/viewer/info/info_app_bar.dart b/lib/widgets/viewer/info/info_app_bar.dart index 689152407..d2a6525d7 100644 --- a/lib/widgets/viewer/info/info_app_bar.dart +++ b/lib/widgets/viewer/info/info_app_bar.dart @@ -9,6 +9,7 @@ import 'package:aves/theme/durations.dart'; import 'package:aves/theme/icons.dart'; import 'package:aves/widgets/common/app_bar/app_bar_title.dart'; import 'package:aves/widgets/common/app_bar/sliver_app_bar_title.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/basic/popup/menu_row.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:aves/widgets/viewer/action/entry_info_action_delegate.dart'; @@ -72,7 +73,7 @@ class InfoAppBar extends StatelessWidget { tooltip: MaterialLocalizations.of(context).searchFieldLabel, ), if (entry.canEdit) - MenuIconTheme( + FontSizeIconTheme( child: PopupMenuButton( itemBuilder: (context) => [ ...commonActions.map((action) => _toMenuItem(context, action, enabled: actionDelegate.canApply(entry, action))), diff --git a/lib/widgets/viewer/overlay/viewer_buttons.dart b/lib/widgets/viewer/overlay/viewer_buttons.dart index 52a27e5db..b2a9b2191 100644 --- a/lib/widgets/viewer/overlay/viewer_buttons.dart +++ b/lib/widgets/viewer/overlay/viewer_buttons.dart @@ -16,6 +16,7 @@ import 'package:aves/widgets/common/action_controls/quick_choosers/tag_button.da import 'package:aves/widgets/common/action_controls/togglers/favourite.dart'; import 'package:aves/widgets/common/action_controls/togglers/mute.dart'; import 'package:aves/widgets/common/action_controls/togglers/play.dart'; +import 'package:aves/widgets/common/basic/font_size_icon_theme.dart'; import 'package:aves/widgets/common/basic/popup/container.dart'; import 'package:aves/widgets/common/basic/popup/expansion_panel.dart'; import 'package:aves/widgets/common/basic/popup/menu_button.dart'; @@ -240,7 +241,7 @@ class ViewerButtonRowContent extends StatelessWidget { padding: const EdgeInsets.symmetric(horizontal: padding / 2), child: OverlayButton( scale: scale, - child: MenuIconTheme( + child: FontSizeIconTheme( child: AvesPopupMenuButton( key: const Key('entry-menu-button'), itemBuilder: (context) {