diff --git a/flutter/lib/desktop/pages/desktop_setting_page.dart b/flutter/lib/desktop/pages/desktop_setting_page.dart index 4dee773f7..37648a163 100644 --- a/flutter/lib/desktop/pages/desktop_setting_page.dart +++ b/flutter/lib/desktop/pages/desktop_setting_page.dart @@ -13,6 +13,7 @@ import 'package:flutter_hbb/desktop/pages/desktop_home_page.dart'; import 'package:flutter_hbb/desktop/pages/desktop_tab_page.dart'; import 'package:flutter_hbb/desktop/widgets/remote_toolbar.dart'; import 'package:flutter_hbb/mobile/widgets/dialog.dart'; +import 'package:flutter_hbb/models/model.dart'; import 'package:flutter_hbb/models/platform_model.dart'; import 'package:flutter_hbb/models/printer_model.dart'; import 'package:flutter_hbb/models/server_model.dart'; @@ -1812,9 +1813,9 @@ class _DisplayState extends State<_Display> { } Widget remoteCanvasMargin(BuildContext context) { + final canvasModel = Provider.of(context, listen: false); onChanged(double value) async { - await bind.mainSetUserDefaultOption( - key: kOptionRemoteCanvasMargin, value: value.round().toString()); + await canvasModel.setRemoteCanvasMargin(value); setState(() {}); } diff --git a/flutter/lib/desktop/widgets/remote_toolbar.dart b/flutter/lib/desktop/widgets/remote_toolbar.dart index 5e4dc677b..0133efb8e 100644 --- a/flutter/lib/desktop/widgets/remote_toolbar.dart +++ b/flutter/lib/desktop/widgets/remote_toolbar.dart @@ -1148,9 +1148,7 @@ class _DisplayMenuState extends State<_DisplayMenu> { onChangeRemoteCanvasMargin(double? value) async { if (value == null || isRemoteCanvasMarginFixed) return; - await bind.mainSetUserDefaultOption( - key: kOptionRemoteCanvasMargin, value: value.round().toString()); - await widget.ffi.canvasModel.updateViewStyle(); + await widget.ffi.canvasModel.setRemoteCanvasMargin(value); state.setState(() {}); } diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index 3f2de5ed8..dfc72e1af 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -2203,6 +2203,13 @@ class CanvasModel with ChangeNotifier { return max(0, value); } + Future setRemoteCanvasMargin(double value) async { + final normalizedValue = max(0, value.round()); + await bind.mainSetUserDefaultOption( + key: kOptionRemoteCanvasMargin, value: normalizedValue.toString()); + await updateViewStyle(); + } + Rect? get paddedRect { final rect = realRect; if (rect == null) {