Fix. Custom client, maxmize of incoming only (#7406)

* Fix. Custom client, maxmize of incoming only

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* format

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
fufesou 2024-03-16 17:33:58 +08:00 committed by GitHub
parent efd1f24ab2
commit fc90526258
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 38 additions and 30 deletions

View File

@ -3131,3 +3131,8 @@ Size getIncomingOnlyHomeSize() {
Size getIncomingOnlySettingsSize() {
return Size(768, 600);
}
bool isInHomePage() {
final controller = Get.find<DesktopTabController>();
return controller.state.value.selected == 0;
}

View File

@ -13,7 +13,6 @@ import 'package:flutter_hbb/desktop/pages/connection_page.dart';
import 'package:flutter_hbb/desktop/pages/desktop_setting_page.dart';
import 'package:flutter_hbb/desktop/pages/desktop_tab_page.dart';
import 'package:flutter_hbb/desktop/widgets/scroll_wrapper.dart';
import 'package:flutter_hbb/desktop/widgets/tabbar_widget.dart';
import 'package:flutter_hbb/models/platform_model.dart';
import 'package:flutter_hbb/models/server_model.dart';
import 'package:flutter_hbb/plugin/ui_manager.dart';
@ -56,11 +55,6 @@ class _DesktopHomePageState extends State<DesktopHomePage>
final GlobalKey _childKey = GlobalKey();
bool _isInHomePage() {
final controller = Get.find<DesktopTabController>();
return controller.state.value.selected == 0;
}
@override
Widget build(BuildContext context) {
super.build(context);
@ -152,7 +146,7 @@ class _DesktopHomePageState extends State<DesktopHomePage>
builder: (_, data) {
if (data.hasData) {
if (isIncomingOnly) {
if (_isInHomePage()) {
if (isInHomePage()) {
Future.delayed(Duration(milliseconds: 300), () {
_updateWindowSize();
});
@ -171,7 +165,7 @@ class _DesktopHomePageState extends State<DesktopHomePage>
Divider(),
OnlineStatusWidget(
onSvcStatusChanged: () {
if (_isInHomePage()) {
if (isInHomePage()) {
Future.delayed(Duration(milliseconds: 300), () {
_updateWindowSize();
});

View File

@ -375,7 +375,8 @@ class DesktopTab extends StatelessWidget {
Expanded(
child: GestureDetector(
// custom double tap handler
onTap: !bind.isIncomingOnly() && showMaximize
onTap: !(bind.isIncomingOnly() && isInHomePage()) &&
showMaximize
? () {
final current = DateTime.now().millisecondsSinceEpoch;
final elapsed = current - _lastClickTime;
@ -691,7 +692,9 @@ class WindowActionPanelState extends State<WindowActionPanel>
icon: stateGlobal.isMaximized.isTrue
? IconFont.restore
: IconFont.max,
onTap: _toggleMaximize,
onTap: bind.isIncomingOnly() && isInHomePage()
? null
: _toggleMaximize,
isClose: false,
))),
Offstage(
@ -1107,7 +1110,7 @@ class _CloseButton extends StatelessWidget {
class ActionIcon extends StatefulWidget {
final String? message;
final IconData icon;
final Function() onTap;
final GestureTapCallback? onTap;
final bool isClose;
final double iconSize;
final double boxSize;
@ -1116,7 +1119,7 @@ class ActionIcon extends StatefulWidget {
{Key? key,
this.message,
required this.icon,
required this.onTap,
this.onTap,
this.isClose = false,
this.iconSize = _kActionIconSize,
this.boxSize = _kTabBarHeight - 1})
@ -1140,24 +1143,30 @@ class _ActionIconState extends State<ActionIcon> {
return Tooltip(
message: widget.message != null ? translate(widget.message!) : "",
waitDuration: const Duration(seconds: 1),
child: Obx(
() => InkWell(
hoverColor: widget.isClose
? const Color.fromARGB(255, 196, 43, 28)
: MyTheme.tabbar(context).hoverColor,
onHover: (value) => hover.value = value,
onTap: widget.onTap,
child: SizedBox(
height: widget.boxSize,
width: widget.boxSize,
child: Icon(
widget.icon,
color: hover.value && widget.isClose
? Colors.white
: MyTheme.tabbar(context).unSelectedIconColor,
size: widget.iconSize,
),
),
child: InkWell(
hoverColor: widget.isClose
? const Color.fromARGB(255, 196, 43, 28)
: MyTheme.tabbar(context).hoverColor,
onHover: (value) => hover.value = value,
onTap: widget.onTap,
child: SizedBox(
height: widget.boxSize,
width: widget.boxSize,
child: widget.onTap == null
? Icon(
widget.icon,
color: Colors.grey,
size: widget.iconSize,
)
: Obx(
() => Icon(
widget.icon,
color: hover.value && widget.isClose
? Colors.white
: MyTheme.tabbar(context).unSelectedIconColor,
size: widget.iconSize,
),
),
),
),
);