long press menu to open settings

This commit is contained in:
Fabian Freund
2026-05-04 19:12:17 +02:00
parent 334f5e1b35
commit f1313628d1
2 changed files with 11 additions and 2 deletions
@@ -209,6 +209,7 @@ final List<ToolbarButtonDefinition> toolbarButtonRegistry = [
spec: navigationMenuToolbarButtonSpec, spec: navigationMenuToolbarButtonSpec,
label: 'Menu', label: 'Menu',
icon: Icons.more_vert, icon: Icons.more_vert,
longPressActions: ['Open Settings'],
builder: (scope, context, ref) => scope.isPreview builder: (scope, context, ref) => scope.isPreview
? NavigationMenuButtonView(onTap: () {}) ? NavigationMenuButtonView(onTap: () {})
: NavigationMenuButton(selectedTabId: scope.selectedTabId), : NavigationMenuButton(selectedTabId: scope.selectedTabId),
@@ -81,18 +81,26 @@ class NavigationMenuButton extends StatelessWidget {
onTap: () async { onTap: () async {
await showBrowserMenuSheet(context); await showBrowserMenuSheet(context);
}, },
onLongPress: () async {
await SettingsRoute().push(context);
},
); );
} }
} }
class NavigationMenuButtonView extends StatelessWidget { class NavigationMenuButtonView extends StatelessWidget {
const NavigationMenuButtonView({super.key, this.onTap}); const NavigationMenuButtonView({super.key, this.onTap, this.onLongPress});
final VoidCallback? onTap; final VoidCallback? onTap;
final VoidCallback? onLongPress;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ToolbarButton(onTap: onTap, child: const Icon(Icons.more_vert)); return ToolbarButton(
onTap: onTap,
onLongPress: onLongPress,
child: const Icon(Icons.more_vert),
);
} }
} }