diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/browser_view.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/browser_view.dart index 20b3a27a..c623dd6e 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/browser_view.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/browser_view.dart @@ -218,71 +218,74 @@ class _BrowserViewState extends ConsumerState }, ); - return Visibility( - visible: hasTab, - maintainState: true, - replacement: SizedBox.expand(child: Container(color: Colors.grey[800])), - child: GeckoView( - preInitializationStep: () async { - await ref - .read(eventServiceProvider) - .viewReadyStateEvents - .firstWhere((state) => state == true) - .timeout( - const Duration(seconds: 3), - onTimeout: () { - logger.e( - 'Browser fragement not reported ready, trying to intitialize anyways', - ); - return true; - }, - ); - }, - postInitializationStep: () async { - await widget.postInitializationStep?.call(); + return Stack( + children: [ + GeckoView( + preInitializationStep: () async { + await ref + .read(eventServiceProvider) + .viewReadyStateEvents + .firstWhere((state) => state == true) + .timeout( + const Duration(seconds: 3), + onTimeout: () { + logger.e( + 'Browser fragement not reported ready, trying to intitialize anyways', + ); + return true; + }, + ); + }, + postInitializationStep: () async { + await widget.postInitializationStep?.call(); - if (!initializationCompleter.isCompleted) { - const quickActions = QuickActions(); + if (!initializationCompleter.isCompleted) { + const quickActions = QuickActions(); - //Debounce: https://github.com/flutter/flutter/issues/131121 - DateTime? lastAction; - await quickActions.initialize((type) async { - if (lastAction == null || - DateTime.now().difference(lastAction!) > - const Duration(seconds: 5)) { - if (type == 'new_tab') { - lastAction = DateTime.now(); + //Debounce: https://github.com/flutter/flutter/issues/131121 + DateTime? lastAction; + await quickActions.initialize((type) async { + if (lastAction == null || + DateTime.now().difference(lastAction!) > + const Duration(seconds: 5)) { + if (type == 'new_tab') { + lastAction = DateTime.now(); - final router = await ref.read(routerProvider.future); - const route = SearchRoute(tabType: TabType.regular); + final router = await ref.read(routerProvider.future); + const route = SearchRoute(tabType: TabType.regular); - await router.push(route.location); - } else if (type == 'new_private_tab') { - lastAction = DateTime.now(); + await router.push(route.location); + } else if (type == 'new_private_tab') { + lastAction = DateTime.now(); - final router = await ref.read(routerProvider.future); - const route = SearchRoute(tabType: TabType.private); + final router = await ref.read(routerProvider.future); + const route = SearchRoute(tabType: TabType.private); - await router.push(route.location); - } else { - throw UnimplementedError(); + await router.push(route.location); + } else { + throw UnimplementedError(); + } } - } - }); + }); - await quickActions.setShortcutItems([ - //TODO: add icons - const ShortcutItem(type: 'new_tab', localizedTitle: 'New Tab'), - const ShortcutItem( - type: 'new_private_tab', - localizedTitle: 'New Private Tab', - ), - ]); + await quickActions.setShortcutItems([ + //TODO: add icons + const ShortcutItem(type: 'new_tab', localizedTitle: 'New Tab'), + const ShortcutItem( + type: 'new_private_tab', + localizedTitle: 'New Private Tab', + ), + ]); - initializationCompleter.complete(); - } - }, - ), + initializationCompleter.complete(); + } + }, + ), + if (!hasTab) + Positioned.fill( + child: SizedBox.expand(child: Container(color: Colors.grey[800])), + ), + ], ); }