open multi windows, add remote toolbar option
Signed-off-by: dignow <linlong1265@gmail.com>
This commit is contained in:
parent
e997b148e1
commit
f1d3a553d1
@ -535,5 +535,20 @@ Future<List<TToggleMenu>> toolbarDisplayToggle(
|
|||||||
child: Text(translate('Show displays as individual windows'))));
|
child: Text(translate('Show displays as individual windows'))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final screenList = await getScreenRectList();
|
||||||
|
if (useTextureRender && pi.isSupportMultiDisplay && screenList.length > 1) {
|
||||||
|
final value = bind.sessionGetUseAllMyDisplaysForTheRemoteSession(
|
||||||
|
sessionId: ffi.sessionId) ==
|
||||||
|
'Y';
|
||||||
|
v.add(TToggleMenu(
|
||||||
|
value: value,
|
||||||
|
onChanged: (value) {
|
||||||
|
if (value == null) return;
|
||||||
|
bind.sessionSetUseAllMyDisplaysForTheRemoteSession(
|
||||||
|
sessionId: sessionId, value: value ? 'Y' : '');
|
||||||
|
},
|
||||||
|
child: Text(translate('Use all my displays for the remote session'))));
|
||||||
|
}
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ const String kPointerEventKindTouch = "touch";
|
|||||||
const String kPointerEventKindMouse = "mouse";
|
const String kPointerEventKindMouse = "mouse";
|
||||||
|
|
||||||
const String kKeyShowDisplaysAsIndividualWindows = 'displays_as_individual_windows';
|
const String kKeyShowDisplaysAsIndividualWindows = 'displays_as_individual_windows';
|
||||||
const String kKeyUseAllMyMonitorsWhenConnecting = 'use_all_my_monitors_when_connecting';
|
const String kKeyUseAllMyDisplaysForTheRemoteSession = 'use_all_my_displays_for_the_remote_session';
|
||||||
const String kKeyShowMonitorsToolbar = 'show_monitors_toolbar';
|
const String kKeyShowMonitorsToolbar = 'show_monitors_toolbar';
|
||||||
|
|
||||||
// the executable name of the portable version
|
// the executable name of the portable version
|
||||||
|
@ -1325,7 +1325,7 @@ class _DisplayState extends State<_Display> {
|
|||||||
children.add(otherRow('Show displays as individual windows',
|
children.add(otherRow('Show displays as individual windows',
|
||||||
kKeyShowDisplaysAsIndividualWindows));
|
kKeyShowDisplaysAsIndividualWindows));
|
||||||
children.add(otherRow('Use all my displays for the remote session',
|
children.add(otherRow('Use all my displays for the remote session',
|
||||||
kKeyUseAllMyMonitorsWhenConnecting));
|
kKeyUseAllMyDisplaysForTheRemoteSession));
|
||||||
}
|
}
|
||||||
return _Card(title: 'Other Default Options', children: children);
|
return _Card(title: 'Other Default Options', children: children);
|
||||||
}
|
}
|
||||||
|
@ -705,13 +705,13 @@ class FfiModel with ChangeNotifier {
|
|||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
|
||||||
if (!isCache) {
|
if (!isCache) {
|
||||||
tryUseAllMyDisplaysWhenConnecting(peerId);
|
tryUseAllMyDisplaysForTheRemoteSession(peerId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tryUseAllMyDisplaysWhenConnecting(String peerId) async {
|
tryUseAllMyDisplaysForTheRemoteSession(String peerId) async {
|
||||||
if (bind.mainGetUserDefaultOption(
|
if (bind.sessionGetUseAllMyDisplaysForTheRemoteSession(
|
||||||
key: kKeyUseAllMyMonitorsWhenConnecting) !=
|
sessionId: sessionId) !=
|
||||||
'Y') {
|
'Y') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -291,11 +291,11 @@ pub struct PeerConfig {
|
|||||||
)]
|
)]
|
||||||
pub displays_as_individual_windows: String,
|
pub displays_as_individual_windows: String,
|
||||||
#[serde(
|
#[serde(
|
||||||
default = "PeerConfig::default_use_all_my_monitors_when_connecting",
|
default = "PeerConfig::default_use_all_my_displays_for_the_remote_session",
|
||||||
deserialize_with = "PeerConfig::deserialize_use_all_my_monitors_when_connecting",
|
deserialize_with = "PeerConfig::deserialize_use_all_my_displays_for_the_remote_session",
|
||||||
skip_serializing_if = "String::is_empty"
|
skip_serializing_if = "String::is_empty"
|
||||||
)]
|
)]
|
||||||
pub use_all_my_monitors_when_connecting: String,
|
pub use_all_my_displays_for_the_remote_session: String,
|
||||||
|
|
||||||
#[serde(
|
#[serde(
|
||||||
default,
|
default,
|
||||||
@ -341,7 +341,7 @@ impl Default for PeerConfig {
|
|||||||
view_only: Default::default(),
|
view_only: Default::default(),
|
||||||
reverse_mouse_wheel: Self::default_reverse_mouse_wheel(),
|
reverse_mouse_wheel: Self::default_reverse_mouse_wheel(),
|
||||||
displays_as_individual_windows: Self::default_displays_as_individual_windows(),
|
displays_as_individual_windows: Self::default_displays_as_individual_windows(),
|
||||||
use_all_my_monitors_when_connecting: Self::default_use_all_my_monitors_when_connecting(
|
use_all_my_displays_for_the_remote_session: Self::default_use_all_my_displays_for_the_remote_session(
|
||||||
),
|
),
|
||||||
custom_resolutions: Default::default(),
|
custom_resolutions: Default::default(),
|
||||||
options: Self::default_options(),
|
options: Self::default_options(),
|
||||||
@ -1165,9 +1165,9 @@ impl PeerConfig {
|
|||||||
UserDefaultConfig::read().get("displays_as_individual_windows")
|
UserDefaultConfig::read().get("displays_as_individual_windows")
|
||||||
);
|
);
|
||||||
serde_field_string!(
|
serde_field_string!(
|
||||||
default_use_all_my_monitors_when_connecting,
|
default_use_all_my_displays_for_the_remote_session,
|
||||||
deserialize_use_all_my_monitors_when_connecting,
|
deserialize_use_all_my_displays_for_the_remote_session,
|
||||||
UserDefaultConfig::read().get("use_all_my_monitors_when_connecting")
|
UserDefaultConfig::read().get("use_all_my_displays_for_the_remote_session")
|
||||||
);
|
);
|
||||||
|
|
||||||
fn default_custom_image_quality() -> Vec<i32> {
|
fn default_custom_image_quality() -> Vec<i32> {
|
||||||
|
@ -1218,14 +1218,14 @@ impl LoginConfigHandler {
|
|||||||
self.save_config(config);
|
self.save_config(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Save "use_all_my_monitors_when_connecting" ("", "Y") to the current config.
|
/// Save "use_all_my_displays_for_the_remote_session" ("", "Y") to the current config.
|
||||||
///
|
///
|
||||||
/// # Arguments
|
/// # Arguments
|
||||||
///
|
///
|
||||||
/// * `value` - The "use_all_my_monitors_when_connecting" value ("", "Y").
|
/// * `value` - The "use_all_my_displays_for_the_remote_session" value ("", "Y").
|
||||||
pub fn save_use_all_my_monitors_when_connecting(&mut self, value: String) {
|
pub fn save_use_all_my_displays_for_the_remote_session(&mut self, value: String) {
|
||||||
let mut config = self.load_config();
|
let mut config = self.load_config();
|
||||||
config.use_all_my_monitors_when_connecting = value;
|
config.use_all_my_displays_for_the_remote_session = value;
|
||||||
self.save_config(config);
|
self.save_config(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -355,19 +355,19 @@ pub fn session_set_displays_as_individual_windows(session_id: SessionID, value:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn session_get_use_all_my_monitors_when_connecting(
|
pub fn session_get_use_all_my_displays_for_the_remote_session(
|
||||||
session_id: SessionID,
|
session_id: SessionID,
|
||||||
) -> SyncReturn<Option<String>> {
|
) -> SyncReturn<Option<String>> {
|
||||||
if let Some(session) = sessions::get_session_by_session_id(&session_id) {
|
if let Some(session) = sessions::get_session_by_session_id(&session_id) {
|
||||||
SyncReturn(Some(session.get_use_all_my_monitors_when_connecting()))
|
SyncReturn(Some(session.get_use_all_my_displays_for_the_remote_session()))
|
||||||
} else {
|
} else {
|
||||||
SyncReturn(None)
|
SyncReturn(None)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn session_set_use_all_my_monitors_when_connecting(session_id: SessionID, value: String) {
|
pub fn session_set_use_all_my_displays_for_the_remote_session(session_id: SessionID, value: String) {
|
||||||
if let Some(session) = sessions::get_session_by_session_id(&session_id) {
|
if let Some(session) = sessions::get_session_by_session_id(&session_id) {
|
||||||
session.save_use_all_my_monitors_when_connecting(value);
|
session.save_use_all_my_displays_for_the_remote_session(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,8 +240,8 @@ impl<T: InvokeUiSession> Session<T> {
|
|||||||
self.lc.read().unwrap().displays_as_individual_windows.clone()
|
self.lc.read().unwrap().displays_as_individual_windows.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_use_all_my_monitors_when_connecting(&self) -> String {
|
pub fn get_use_all_my_displays_for_the_remote_session(&self) -> String {
|
||||||
self.lc.read().unwrap().use_all_my_monitors_when_connecting.clone()
|
self.lc.read().unwrap().use_all_my_displays_for_the_remote_session.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn save_reverse_mouse_wheel(&self, value: String) {
|
pub fn save_reverse_mouse_wheel(&self, value: String) {
|
||||||
@ -252,8 +252,8 @@ impl<T: InvokeUiSession> Session<T> {
|
|||||||
self.lc.write().unwrap().save_displays_as_individual_windows(value);
|
self.lc.write().unwrap().save_displays_as_individual_windows(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn save_use_all_my_monitors_when_connecting(&self, value: String) {
|
pub fn save_use_all_my_displays_for_the_remote_session(&self, value: String) {
|
||||||
self.lc.write().unwrap().save_use_all_my_monitors_when_connecting(value);
|
self.lc.write().unwrap().save_use_all_my_displays_for_the_remote_session(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn save_view_style(&self, value: String) {
|
pub fn save_view_style(&self, value: String) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user