diff --git a/frontend/appflowy_flutter/lib/startup/tasks/app_window_size_manager.dart b/frontend/appflowy_flutter/lib/startup/tasks/app_window_size_manager.dart index d8723ac232..8a40051211 100644 --- a/frontend/appflowy_flutter/lib/startup/tasks/app_window_size_manager.dart +++ b/frontend/appflowy_flutter/lib/startup/tasks/app_window_size_manager.dart @@ -1,5 +1,4 @@ import 'dart:convert'; -import 'dart:math'; import 'dart:ui'; import 'package:appflowy/core/config/kv.dart'; @@ -9,6 +8,9 @@ import 'package:appflowy/startup/startup.dart'; class WindowSizeManager { static const double minWindowHeight = 600.0; static const double minWindowWidth = 800.0; + // Preventing failed assertion due to Texture Descriptor Validation + static const double maxWindowHeight = 8192.0; + static const double maxWindowWidth = 8192.0; static const width = 'width'; static const height = 'height'; @@ -18,8 +20,8 @@ class WindowSizeManager { Future setSize(Size size) async { final windowSize = { - height: max(size.height, minWindowHeight), - width: max(size.width, minWindowWidth), + height: size.height.clamp(minWindowHeight, maxWindowHeight), + width: size.width.clamp(minWindowWidth, maxWindowWidth), }; await getIt().set( @@ -29,12 +31,19 @@ class WindowSizeManager { } Future getSize() async { - final defaultWindowSize = jsonEncode({height: 600.0, width: 800.0}); + final defaultWindowSize = jsonEncode( + {WindowSizeManager.height: 600.0, WindowSizeManager.width: 800.0}, + ); final windowSize = await getIt().get(KVKeys.windowSize); final size = json.decode( windowSize ?? defaultWindowSize, ); - return Size(size[width]!, size[height]!); + final double width = size[WindowSizeManager.width] ?? minWindowWidth; + final double height = size[WindowSizeManager.height] ?? minWindowHeight; + return Size( + width.clamp(minWindowWidth, maxWindowWidth), + height.clamp(minWindowHeight, maxWindowHeight), + ); } Future setPosition(Offset offset) async { diff --git a/frontend/appflowy_flutter/lib/startup/tasks/windows.dart b/frontend/appflowy_flutter/lib/startup/tasks/windows.dart index a72116dd76..fa24a602b3 100644 --- a/frontend/appflowy_flutter/lib/startup/tasks/windows.dart +++ b/frontend/appflowy_flutter/lib/startup/tasks/windows.dart @@ -9,11 +9,9 @@ import 'package:window_manager/window_manager.dart'; class InitAppWindowTask extends LaunchTask with WindowListener { const InitAppWindowTask({ - this.minimumSize = const Size(800, 600), this.title = 'AppFlowy', }); - final Size minimumSize; final String title; @override @@ -27,13 +25,16 @@ class InitAppWindowTask extends LaunchTask with WindowListener { windowManager.addListener(this); final windowSize = await WindowSizeManager().getSize(); - final windowOptions = WindowOptions( size: windowSize, minimumSize: const Size( WindowSizeManager.minWindowWidth, WindowSizeManager.minWindowHeight, ), + maximumSize: const Size( + WindowSizeManager.maxWindowWidth, + WindowSizeManager.maxWindowHeight, + ), title: title, );