tmp commit

Signed-off-by: dignow <linlong1265@gmail.com>
This commit is contained in:
dignow 2023-08-04 20:22:54 +08:00
parent 53e87352da
commit fd12f69afa
6 changed files with 20 additions and 16 deletions

View File

@ -326,9 +326,9 @@ class _GeneralState extends State<_General> {
update: () {
final useSeparateWindow =
mainGetLocalBoolOptionSync(kOptionSeparateRemoteWindow);
if (useSeparateWindow) {
// if (useSeparateWindow) {
rustDeskWinManager.separateWindows();
}
// }
},
),
];

View File

@ -1655,9 +1655,15 @@ class FFI {
final stream = bind.sessionStart(sessionId: sessionId, id: id);
final cb = ffiModel.startEventListener(sessionId, id);
final useTextureRender = bind.mainUseTextureRender();
final SimpleWrapper<bool> isPeerInfoSent = SimpleWrapper(false);
// Preserved for the rgba data.
stream.listen((message) {
if (closed) return;
if (isSessionAdded && !isPeerInfoSent.value) {
bind.sessionHandlePeerInfo(sessionId: sessionId);
isPeerInfoSent.value = true;
}
() async {
if (message is EventToUI_Event) {
if (message.field0 == "close") {
@ -1702,10 +1708,6 @@ class FFI {
});
// every instance will bind a stream
this.id = id;
if (isSessionAdded) {
bind.sessionHandlePeerInfo(sessionId: sessionId);
}
}
/// Login with [password], choose if the client should [remember] it.

View File

@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_hbb/consts.dart';
import 'package:flutter_hbb/common.dart';
import 'package:flutter_hbb/models/platform_model.dart';
/// must keep the order
enum WindowType { Main, RemoteDesktop, FileTransfer, PortForward, Unknown }
@ -48,10 +49,10 @@ class RustDeskMultiWindowManager {
final String sessionIdList = await DesktopMultiWindow.invokeMethod(
windowId, kWindowEventGetSessionIdList, null);
final idList = sessionIdList.split(';');
if (idList.length <= 1) {
continue;
}
for (final idPair in idList.sublist(1)) {
// if (idList.length <= 1) {
// continue;
// }
for (final idPair in idList) {
final peerSession = idPair.split(',');
var params = {
'type': WindowType.RemoteDesktop.index,

View File

@ -1010,7 +1010,7 @@ impl<T: InvokeUiSession> Remote<T> {
Some(login_response::Union::PeerInfo(pi)) => {
#[cfg(feature = "flutter")]
{
self.handler.pi = pi.clone();
*self.handler.pi.write().unwrap() = pi.clone();
}
self.handler.handle_peer_info(pi);
#[cfg(not(feature = "flutter"))]
@ -1280,7 +1280,7 @@ impl<T: InvokeUiSession> Remote<T> {
Some(misc::Union::SwitchDisplay(s)) => {
#[cfg(feature = "flutter")]
{
self.handler.switch_display = s.clone();
*self.handler.switch_display.write().unwrap() = s.clone();
}
self.handler.handle_peer_switch_display(&s);
self.video_sender.send(MediaData::Reset).ok();

View File

@ -603,8 +603,9 @@ pub fn session_change_resolution(session_id: SessionID, display: i32, width: i32
pub fn session_handle_peer_info(session_id: SessionID) {
if let Some(session) = SESSIONS.write().unwrap().get_mut(&session_id) {
session.handle_peer_info(session.pi.clone());
session.handle_peer_switch_display(&session.switch_display);
let pi = session.pi.read().unwrap().clone();
session.handle_peer_info(pi);
session.handle_peer_switch_display(&session.switch_display.read().unwrap());
}
}

View File

@ -63,9 +63,9 @@ pub struct Session<T: InvokeUiSession> {
pub server_clipboard_enabled: Arc<RwLock<bool>>,
pub last_change_display: Arc<Mutex<ChangeDisplayRecord>>,
#[cfg(feature = "flutter")]
pub pi: PeerInfo,
pub pi: Arc<RwLock<PeerInfo>>,
#[cfg(feature = "flutter")]
pub switch_display: SwitchDisplay,
pub switch_display: Arc<RwLock<SwitchDisplay>>,
}
#[derive(Clone)]