opt: remove drag to resize widget on macOS

This commit is contained in:
Kingtous 2022-09-19 10:14:14 +08:00
parent 429d72c9c3
commit ef80dab48e
4 changed files with 123 additions and 108 deletions

View File

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_hbb/common.dart'; import 'package:flutter_hbb/common.dart';
import 'package:flutter_hbb/consts.dart'; import 'package:flutter_hbb/consts.dart';
@ -35,9 +37,7 @@ class _DesktopTabPageState extends State<DesktopTabPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
RxBool fullscreen = false.obs; RxBool fullscreen = false.obs;
Get.put(fullscreen, tag: 'fullscreen'); Get.put(fullscreen, tag: 'fullscreen');
return Obx(() => DragToResizeArea( final tabWidget = Container(
resizeEdgeSize: fullscreen.value ? 1.0 : 8.0,
child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
border: Border.all(color: MyTheme.color(context).border!)), border: Border.all(color: MyTheme.color(context).border!)),
child: Overlay(initialEntries: [ child: Overlay(initialEntries: [
@ -56,7 +56,11 @@ class _DesktopTabPageState extends State<DesktopTabPage> {
)); ));
}) })
]), ]),
))); );
return Obx(() => Platform.isMacOS
? tabWidget
: DragToResizeArea(
resizeEdgeSize: fullscreen.value ? 1.0 : 8.0, child: tabWidget));
} }
void onAddSetting() { void onAddSetting() {

View File

@ -1,4 +1,5 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io';
import 'package:desktop_multi_window/desktop_multi_window.dart'; import 'package:desktop_multi_window/desktop_multi_window.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -66,9 +67,7 @@ class _FileManagerTabPageState extends State<FileManagerTabPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return SubWindowDragToResizeArea( final tabWidget = Container(
windowId: windowId(),
child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
border: Border.all(color: MyTheme.color(context).border!)), border: Border.all(color: MyTheme.color(context).border!)),
child: Scaffold( child: Scaffold(
@ -78,7 +77,12 @@ class _FileManagerTabPageState extends State<FileManagerTabPage> {
onWindowCloseButton: handleWindowCloseButton, onWindowCloseButton: handleWindowCloseButton,
tail: const AddButton().paddingOnly(left: 10), tail: const AddButton().paddingOnly(left: 10),
)), )),
), );
return Platform.isMacOS
? tabWidget
: SubWindowDragToResizeArea(
windowId: windowId(),
child: tabWidget,
); );
} }

View File

@ -1,4 +1,5 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io';
import 'package:desktop_multi_window/desktop_multi_window.dart'; import 'package:desktop_multi_window/desktop_multi_window.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -74,9 +75,7 @@ class _PortForwardTabPageState extends State<PortForwardTabPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return SubWindowDragToResizeArea( final tabWidget = Container(
windowId: windowId(),
child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
border: Border.all(color: MyTheme.color(context).border!)), border: Border.all(color: MyTheme.color(context).border!)),
child: Scaffold( child: Scaffold(
@ -89,7 +88,12 @@ class _PortForwardTabPageState extends State<PortForwardTabPage> {
}, },
tail: AddButton().paddingOnly(left: 10), tail: AddButton().paddingOnly(left: 10),
)), )),
), );
return Platform.isMacOS
? tabWidget
: SubWindowDragToResizeArea(
windowId: windowId(),
child: tabWidget,
); );
} }

View File

@ -1,4 +1,5 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io';
import 'package:desktop_multi_window/desktop_multi_window.dart'; import 'package:desktop_multi_window/desktop_multi_window.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -86,10 +87,7 @@ class _ConnectionTabPageState extends State<ConnectionTabPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final RxBool fullscreen = Get.find(tag: 'fullscreen'); final RxBool fullscreen = Get.find(tag: 'fullscreen');
return Obx(() => SubWindowDragToResizeArea( final tabWidget = Container(
resizeEdgeSize: fullscreen.value ? 1.0 : 8.0,
windowId: windowId(),
child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
border: Border.all(color: MyTheme.color(context).border!)), border: Border.all(color: MyTheme.color(context).border!)),
child: Scaffold( child: Scaffold(
@ -115,12 +113,12 @@ class _ConnectionTabPageState extends State<ConnectionTabPage> {
], ],
); );
} else { } else {
final msgDirect = translate(connectionType.direct.value == final msgDirect = translate(
ConnectionType.strDirect connectionType.direct.value == ConnectionType.strDirect
? 'Direct Connection' ? 'Direct Connection'
: 'Relay Connection'); : 'Relay Connection');
final msgSecure = translate(connectionType.secure.value == final msgSecure = translate(
ConnectionType.strSecure connectionType.secure.value == ConnectionType.strSecure
? 'Secure Connection' ? 'Secure Connection'
: 'Insecure Connection'); : 'Insecure Connection');
return Row( return Row(
@ -141,8 +139,13 @@ class _ConnectionTabPageState extends State<ConnectionTabPage> {
} }
}), }),
)), )),
), );
)); return Obx(() => Platform.isMacOS
? tabWidget
: SubWindowDragToResizeArea(
resizeEdgeSize: fullscreen.value ? 1.0 : 8.0,
windowId: windowId(),
child: tabWidget));
} }
void onRemoveId(String id) { void onRemoveId(String id) {