mirror of
https://github.com/rustdesk/rustdesk.git
synced 2025-05-12 10:56:11 +02:00
fix several bugs
1. updateCurDisplay, canvas origin (x,y) 2. Do not show "Show displays as individual windows" on non-texture render version. Signed-off-by: dignow <linlong1265@gmail.com>
This commit is contained in:
parent
2cc0bf22cb
commit
fde8196874
4 changed files with 14 additions and 8 deletions
|
@ -14,6 +14,7 @@ import 'package:flutter/services.dart';
|
|||
import 'package:flutter_hbb/common/formatter/id_formatter.dart';
|
||||
import 'package:flutter_hbb/desktop/widgets/refresh_wrapper.dart';
|
||||
import 'package:flutter_hbb/desktop/widgets/tabbar_widget.dart';
|
||||
import 'package:flutter_hbb/models/desktop_render_texture.dart';
|
||||
import 'package:flutter_hbb/main.dart';
|
||||
import 'package:flutter_hbb/models/peer_model.dart';
|
||||
import 'package:flutter_hbb/models/state_model.dart';
|
||||
|
@ -2602,5 +2603,5 @@ sessionRefreshVideo(SessionID sessionId, PeerInfo pi) async {
|
|||
|
||||
bool isChooseDisplayToOpenInNewWindow(PeerInfo pi, SessionID sessionId) =>
|
||||
pi.isSupportMultiDisplay &&
|
||||
useTextureRender &&
|
||||
bind.sessionGetDisplaysAsIndividualWindows(sessionId: sessionId) == 'Y';
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import 'package:flutter_hbb/common/widgets/dialog.dart';
|
|||
import 'package:flutter_hbb/consts.dart';
|
||||
import 'package:flutter_hbb/models/model.dart';
|
||||
import 'package:flutter_hbb/models/platform_model.dart';
|
||||
import 'package:flutter_hbb/models/desktop_render_texture.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
bool isEditOsPassword = false;
|
||||
|
@ -516,7 +517,8 @@ Future<List<TToggleMenu>> toolbarDisplayToggle(
|
|||
child: Text(translate('Swap control-command key'))));
|
||||
}
|
||||
|
||||
if (pi.isSupportMultiDisplay &&
|
||||
if (useTextureRender &&
|
||||
pi.isSupportMultiDisplay &&
|
||||
PrivacyModeState.find(id).isFalse &&
|
||||
pi.displaysCount.value > 1 &&
|
||||
bind.mainGetUserDefaultOption(key: kKeyShowMonitorsToolbar) == 'Y') {
|
||||
|
|
|
@ -9,6 +9,7 @@ import 'package:flutter_hbb/common/widgets/toolbar.dart';
|
|||
import 'package:flutter_hbb/main.dart';
|
||||
import 'package:flutter_hbb/models/chat_model.dart';
|
||||
import 'package:flutter_hbb/models/state_model.dart';
|
||||
import 'package:flutter_hbb/models/desktop_render_texture.dart';
|
||||
import 'package:flutter_hbb/consts.dart';
|
||||
import 'package:flutter_hbb/utils/multi_window_manager.dart';
|
||||
import 'package:flutter_hbb/plugin/widgets/desc_ui.dart';
|
||||
|
@ -600,6 +601,9 @@ class _MonitorMenu extends StatelessWidget {
|
|||
bool get showMonitorsToolbar =>
|
||||
bind.mainGetUserDefaultOption(key: kKeyShowMonitorsToolbar) == 'Y';
|
||||
|
||||
bool get supportIndividualWindows =>
|
||||
useTextureRender && ffi.ffiModel.pi.isSupportMultiDisplay;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) =>
|
||||
showMonitorsToolbar ? buildMultiMonitorMenu() : buildMonitorMenu();
|
||||
|
@ -622,13 +626,12 @@ class _MonitorMenu extends StatelessWidget {
|
|||
}
|
||||
|
||||
Widget buildMonitorSubmenuWidget() {
|
||||
final pi = ffi.ffiModel.pi;
|
||||
return Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Row(children: buildMonitorList(false)),
|
||||
pi.isSupportMultiDisplay ? Divider() : Offstage(),
|
||||
pi.isSupportMultiDisplay ? chooseDisplayBehavior() : Offstage(),
|
||||
supportIndividualWindows ? Divider() : Offstage(),
|
||||
supportIndividualWindows ? chooseDisplayBehavior() : Offstage(),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
@ -711,7 +714,7 @@ class _MonitorMenu extends StatelessWidget {
|
|||
for (int i = 0; i < pi.displays.length; i++) {
|
||||
monitorList.add(buildMonitorButton(i));
|
||||
}
|
||||
if (pi.isSupportMultiUiSession && pi.displays.length > 1) {
|
||||
if (supportIndividualWindows && pi.displays.length > 1) {
|
||||
monitorList.add(buildMonitorButton(kAllDisplayValue));
|
||||
}
|
||||
return monitorList;
|
||||
|
|
|
@ -19,6 +19,7 @@ import 'package:flutter_hbb/models/peer_tab_model.dart';
|
|||
import 'package:flutter_hbb/models/server_model.dart';
|
||||
import 'package:flutter_hbb/models/user_model.dart';
|
||||
import 'package:flutter_hbb/models/state_model.dart';
|
||||
import 'package:flutter_hbb/models/desktop_render_texture.dart';
|
||||
import 'package:flutter_hbb/plugin/event.dart';
|
||||
import 'package:flutter_hbb/plugin/manager.dart';
|
||||
import 'package:flutter_hbb/plugin/widgets/desc_ui.dart';
|
||||
|
@ -415,11 +416,11 @@ class FfiModel with ChangeNotifier {
|
|||
return;
|
||||
}
|
||||
if (newRect != _rect) {
|
||||
_rect = newRect;
|
||||
if (newRect.left != _rect?.left || newRect.top != _rect?.top) {
|
||||
parent.target?.cursorModel
|
||||
.updateDisplayOrigin(newRect.left, newRect.top);
|
||||
}
|
||||
_rect = newRect;
|
||||
parent.target?.canvasModel.updateViewStyle();
|
||||
_updateSessionWidthHeight(sessionId);
|
||||
}
|
||||
|
@ -1991,7 +1992,6 @@ class FFI {
|
|||
}
|
||||
final stream = bind.sessionStart(sessionId: sessionId, id: id);
|
||||
final cb = ffiModel.startEventListener(sessionId, id);
|
||||
final useTextureRender = bind.mainUseTextureRender();
|
||||
|
||||
// Force refresh displays.
|
||||
// The controlled side may not refresh the image when the (peer,display) is already subscribed.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue