diff --git a/lib/widgets/home_page.dart b/lib/widgets/home_page.dart index 9e328365d..3b1c56f1b 100644 --- a/lib/widgets/home_page.dart +++ b/lib/widgets/home_page.dart @@ -106,7 +106,13 @@ class _HomePageState extends State { unawaited(source.refresh()); } - unawaited(Navigator.pushReplacement(context, _getRedirectRoute(appMode))); + // `pushReplacement` is not enough in some edge cases + // e.g. when opening the viewer in `view` mode should replace a viewer in `main` mode + unawaited(Navigator.pushAndRemoveUntil( + context, + _getRedirectRoute(appMode), + (route) => false, + )); } Future _initViewerEntry({@required String uri, @required String mimeType}) async {