mirror of
https://github.com/rustdesk/rustdesk.git
synced 2024-11-27 23:19:02 +08:00
fix, the session image covers android toolbar
Signed-off-by: dignow <linlong1265@gmail.com>
This commit is contained in:
parent
eee47eae61
commit
ea41a60057
@ -614,6 +614,7 @@ class OverlayDialogManager {
|
||||
int _tagCount = 0;
|
||||
|
||||
OverlayEntry? _mobileActionsOverlayEntry;
|
||||
RxBool mobileActionsOverlayVisible = false.obs;
|
||||
|
||||
void setOverlayState(OverlayKeyState overlayKeyState) {
|
||||
_overlayKeyState = overlayKeyState;
|
||||
@ -780,12 +781,14 @@ class OverlayDialogManager {
|
||||
});
|
||||
overlayState.insert(overlay);
|
||||
_mobileActionsOverlayEntry = overlay;
|
||||
mobileActionsOverlayVisible.value = true;
|
||||
}
|
||||
|
||||
void hideMobileActionsOverlay() {
|
||||
if (_mobileActionsOverlayEntry != null) {
|
||||
_mobileActionsOverlayEntry!.remove();
|
||||
_mobileActionsOverlayEntry = null;
|
||||
mobileActionsOverlayVisible.value = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -279,7 +279,10 @@ class _RemotePageState extends State<RemotePage>
|
||||
_ffi.ffiModel.pi.isSet.isTrue &&
|
||||
_ffi.ffiModel.waitForFirstImage.isTrue
|
||||
? emptyOverlay()
|
||||
: Offstage(),
|
||||
: () {
|
||||
_ffi.ffiModel.tryShowAndroidActionsOverlay();
|
||||
return Offstage();
|
||||
}(),
|
||||
// Use Overlay to enable rebuild every time on menu button click.
|
||||
_ffi.ffiModel.pi.isSet.isTrue
|
||||
? Overlay(initialEntries: [
|
||||
|
@ -101,6 +101,9 @@ class ToolbarState {
|
||||
class _ToolbarTheme {
|
||||
static const Color blueColor = MyTheme.button;
|
||||
static const Color hoverBlueColor = MyTheme.accent;
|
||||
static Color inactiveColor = Colors.grey[800]!;
|
||||
static Color hoverInactiveColor = Colors.grey[850]!;
|
||||
|
||||
static const Color redColor = Colors.redAccent;
|
||||
static const Color hoverRedColor = Colors.red;
|
||||
// kMinInteractiveDimension
|
||||
@ -543,9 +546,9 @@ class _PinMenu extends StatelessWidget {
|
||||
assetName: state.pin ? "assets/pinned.svg" : "assets/unpinned.svg",
|
||||
tooltip: state.pin ? 'Unpin Toolbar' : 'Pin Toolbar',
|
||||
onPressed: state.switchPin,
|
||||
color: state.pin ? _ToolbarTheme.blueColor : Colors.grey[800]!,
|
||||
color: state.pin ? _ToolbarTheme.blueColor : _ToolbarTheme.inactiveColor,
|
||||
hoverColor:
|
||||
state.pin ? _ToolbarTheme.hoverBlueColor : Colors.grey[850]!,
|
||||
state.pin ? _ToolbarTheme.hoverBlueColor : _ToolbarTheme.hoverInactiveColor,
|
||||
),
|
||||
);
|
||||
}
|
||||
@ -558,13 +561,15 @@ class _MobileActionMenu extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (!ffi.ffiModel.isPeerAndroid) return Offstage();
|
||||
return _IconMenuButton(
|
||||
return Obx(()=>_IconMenuButton(
|
||||
assetName: 'assets/actions_mobile.svg',
|
||||
tooltip: 'Mobile Actions',
|
||||
onPressed: () => ffi.dialogManager.toggleMobileActionsOverlay(ffi: ffi),
|
||||
color: _ToolbarTheme.blueColor,
|
||||
hoverColor: _ToolbarTheme.hoverBlueColor,
|
||||
);
|
||||
color: ffi.dialogManager.mobileActionsOverlayVisible.isTrue
|
||||
? _ToolbarTheme.blueColor : _ToolbarTheme.inactiveColor,
|
||||
hoverColor: ffi.dialogManager.mobileActionsOverlayVisible.isTrue
|
||||
? _ToolbarTheme.hoverBlueColor : _ToolbarTheme.hoverInactiveColor,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -266,7 +266,10 @@ class _RemotePageState extends State<RemotePage> {
|
||||
gFFI.ffiModel.pi.isSet.isTrue &&
|
||||
gFFI.ffiModel.waitForFirstImage.isTrue
|
||||
? emptyOverlay()
|
||||
: Offstage(),
|
||||
: () {
|
||||
gFFI.ffiModel.tryShowAndroidActionsOverlay();
|
||||
return Offstage();
|
||||
}(),
|
||||
_bottomWidget(),
|
||||
gFFI.ffiModel.pi.isSet.isFalse ? emptyOverlay() : Offstage(),
|
||||
],
|
||||
|
@ -554,23 +554,13 @@ class FfiModel with ChangeNotifier {
|
||||
}
|
||||
|
||||
final connType = parent.target?.connType;
|
||||
|
||||
if (isPeerAndroid) {
|
||||
_touchMode = true;
|
||||
if (connType == ConnType.defaultConn &&
|
||||
parent.target != null &&
|
||||
parent.target!.ffiModel.permissions['keyboard'] != false) {
|
||||
Timer(
|
||||
const Duration(milliseconds: 100),
|
||||
() => parent.target!.dialogManager
|
||||
.showMobileActionsOverlay(ffi: parent.target!));
|
||||
}
|
||||
} else {
|
||||
_touchMode = await bind.sessionGetOption(
|
||||
sessionId: sessionId, arg: 'touch-mode') !=
|
||||
'';
|
||||
}
|
||||
|
||||
if (connType == ConnType.fileTransfer) {
|
||||
parent.target?.fileModel.onReady();
|
||||
} else if (connType == ConnType.defaultConn) {
|
||||
@ -616,6 +606,19 @@ class FfiModel with ChangeNotifier {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
tryShowAndroidActionsOverlay({int delayMSecs = 10}) {
|
||||
if (isPeerAndroid) {
|
||||
if (parent.target?.connType == ConnType.defaultConn &&
|
||||
parent.target != null &&
|
||||
parent.target!.ffiModel.permissions['keyboard'] != false) {
|
||||
Timer(
|
||||
Duration(milliseconds: delayMSecs),
|
||||
() => parent.target!.dialogManager
|
||||
.showMobileActionsOverlay(ffi: parent.target!));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handleResolutions(String id, dynamic resolutions) {
|
||||
try {
|
||||
final List<dynamic> dynamicArray = jsonDecode(resolutions as String);
|
||||
|
Loading…
Reference in New Issue
Block a user