refact, split tab to separate window
Signed-off-by: dignow <linlong1265@gmail.com>
This commit is contained in:
parent
152616a261
commit
e2228cc448
@ -39,6 +39,7 @@ const String kWindowEventActiveSession = "active_session";
|
|||||||
const String kWindowEventGetRemoteList = "get_remote_list";
|
const String kWindowEventGetRemoteList = "get_remote_list";
|
||||||
const String kWindowEventGetSessionIdList = "get_session_id_list";
|
const String kWindowEventGetSessionIdList = "get_session_id_list";
|
||||||
|
|
||||||
|
const String kWindowEventSplit = "split";
|
||||||
const String kWindowEventCloseForSeparateWindow = "close_for_separate_window";
|
const String kWindowEventCloseForSeparateWindow = "close_for_separate_window";
|
||||||
|
|
||||||
const String kOptionSeparateRemoteWindow = "enable-separate-remote-window";
|
const String kOptionSeparateRemoteWindow = "enable-separate-remote-window";
|
||||||
|
@ -570,6 +570,17 @@ class _DesktopHomePageState extends State<DesktopHomePage>
|
|||||||
forceRelay: call.arguments['forceRelay'],
|
forceRelay: call.arguments['forceRelay'],
|
||||||
forceSeparateWindow: call.arguments['forceSeparateWindow'],
|
forceSeparateWindow: call.arguments['forceSeparateWindow'],
|
||||||
);
|
);
|
||||||
|
} else if (call.method == kWindowEventSplit) {
|
||||||
|
final args = call.arguments.split(',');
|
||||||
|
int? windowId;
|
||||||
|
try {
|
||||||
|
windowId = int.parse(args[0]);
|
||||||
|
} catch (e) {
|
||||||
|
debugPrint("Failed to parse window id '${call.arguments}': $e");
|
||||||
|
}
|
||||||
|
if (windowId != null) {
|
||||||
|
await rustDeskWinManager.splitWindow(windowId, args[1], args[2]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
_uniLinksSubscription = listenUniLinks();
|
_uniLinksSubscription = listenUniLinks();
|
||||||
|
@ -6,7 +6,6 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_hbb/common.dart';
|
import 'package:flutter_hbb/common.dart';
|
||||||
import 'package:flutter_hbb/consts.dart';
|
import 'package:flutter_hbb/consts.dart';
|
||||||
import 'package:flutter_hbb/utils/multi_window_manager.dart';
|
|
||||||
import 'package:flutter_hbb/desktop/pages/desktop_home_page.dart';
|
import 'package:flutter_hbb/desktop/pages/desktop_home_page.dart';
|
||||||
import 'package:flutter_hbb/desktop/pages/desktop_tab_page.dart';
|
import 'package:flutter_hbb/desktop/pages/desktop_tab_page.dart';
|
||||||
import 'package:flutter_hbb/models/platform_model.dart';
|
import 'package:flutter_hbb/models/platform_model.dart';
|
||||||
@ -323,13 +322,6 @@ class _GeneralState extends State<_General> {
|
|||||||
'Separate remote window',
|
'Separate remote window',
|
||||||
kOptionSeparateRemoteWindow,
|
kOptionSeparateRemoteWindow,
|
||||||
isServer: false,
|
isServer: false,
|
||||||
update: () {
|
|
||||||
final useSeparateWindow =
|
|
||||||
mainGetLocalBoolOptionSync(kOptionSeparateRemoteWindow);
|
|
||||||
if (useSeparateWindow) {
|
|
||||||
rustDeskWinManager.separateWindows();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
// though this is related to GUI, but opengl problem affects all users, so put in config rather than local
|
// though this is related to GUI, but opengl problem affects all users, so put in config rather than local
|
||||||
|
@ -329,6 +329,22 @@ class _ConnectionTabPageState extends State<ConnectionTabPage> {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tabController.state.value.tabs.length > 1) {
|
||||||
|
final splitAction = MenuEntryButton<String>(
|
||||||
|
childBuilder: (TextStyle? style) => Text(
|
||||||
|
translate('Split'),
|
||||||
|
style: style,
|
||||||
|
),
|
||||||
|
proc: () async {
|
||||||
|
await DesktopMultiWindow.invokeMethod(
|
||||||
|
kMainWindowId, kWindowEventSplit, '${windowId()},$key,$sessionId');
|
||||||
|
cancelFunc();
|
||||||
|
},
|
||||||
|
padding: padding,
|
||||||
|
);
|
||||||
|
menu.insert(1, splitAction);
|
||||||
|
}
|
||||||
|
|
||||||
if (perms['keyboard'] != false && !ffi.ffiModel.viewOnly) {
|
if (perms['keyboard'] != false && !ffi.ffiModel.viewOnly) {
|
||||||
if (perms['clipboard'] != false) {
|
if (perms['clipboard'] != false) {
|
||||||
menu.add(RemoteMenuEntry.disableClipboard(sessionId, padding,
|
menu.add(RemoteMenuEntry.disableClipboard(sessionId, padding,
|
||||||
|
@ -43,33 +43,22 @@ class RustDeskMultiWindowManager {
|
|||||||
final List<int> _fileTransferWindows = List.empty(growable: true);
|
final List<int> _fileTransferWindows = List.empty(growable: true);
|
||||||
final List<int> _portForwardWindows = List.empty(growable: true);
|
final List<int> _portForwardWindows = List.empty(growable: true);
|
||||||
|
|
||||||
separateWindows() async {
|
splitWindow(int windowId, String peerId, String sessionId) async {
|
||||||
for (final windowId in _remoteDesktopWindows.toList()) {
|
var params = {
|
||||||
final String sessionIdList = await DesktopMultiWindow.invokeMethod(
|
'type': WindowType.RemoteDesktop.index,
|
||||||
windowId, kWindowEventGetSessionIdList, null);
|
'id': peerId,
|
||||||
final idList = sessionIdList.split(';');
|
'session_id': sessionId,
|
||||||
if (idList.length <= 1) {
|
};
|
||||||
continue;
|
await _newSession(
|
||||||
}
|
true,
|
||||||
for (final idPair in idList.sublist(1)) {
|
WindowType.RemoteDesktop,
|
||||||
final peerSession = idPair.split(',');
|
kWindowEventNewRemoteDesktop,
|
||||||
var params = {
|
peerId,
|
||||||
'type': WindowType.RemoteDesktop.index,
|
_remoteDesktopWindows,
|
||||||
'id': peerSession[0],
|
jsonEncode(params),
|
||||||
'session_id': peerSession[1],
|
);
|
||||||
};
|
await DesktopMultiWindow.invokeMethod(
|
||||||
await _newSession(
|
windowId, kWindowEventCloseForSeparateWindow, peerId);
|
||||||
true,
|
|
||||||
WindowType.RemoteDesktop,
|
|
||||||
kWindowEventNewRemoteDesktop,
|
|
||||||
peerSession[0],
|
|
||||||
_remoteDesktopWindows,
|
|
||||||
jsonEncode(params),
|
|
||||||
);
|
|
||||||
await DesktopMultiWindow.invokeMethod(
|
|
||||||
windowId, kWindowEventCloseForSeparateWindow, peerSession[0]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
newSessionWindow(
|
newSessionWindow(
|
||||||
@ -214,7 +203,8 @@ class RustDeskMultiWindowManager {
|
|||||||
}
|
}
|
||||||
for (final windowId in wnds) {
|
for (final windowId in wnds) {
|
||||||
if (_activeWindows.contains(windowId)) {
|
if (_activeWindows.contains(windowId)) {
|
||||||
return await DesktopMultiWindow.invokeMethod(windowId, methodName, args);
|
return await DesktopMultiWindow.invokeMethod(
|
||||||
|
windowId, methodName, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return await DesktopMultiWindow.invokeMethod(wnds[0], methodName, args);
|
return await DesktopMultiWindow.invokeMethod(wnds[0], methodName, args);
|
||||||
@ -223,7 +213,7 @@ class RustDeskMultiWindowManager {
|
|||||||
List<int> _findWindowsByType(WindowType type) {
|
List<int> _findWindowsByType(WindowType type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case WindowType.Main:
|
case WindowType.Main:
|
||||||
return [0];
|
return [kMainWindowId];
|
||||||
case WindowType.RemoteDesktop:
|
case WindowType.RemoteDesktop:
|
||||||
return _remoteDesktopWindows;
|
return _remoteDesktopWindows;
|
||||||
case WindowType.FileTransfer:
|
case WindowType.FileTransfer:
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", "对标签进行排序"),
|
("Sort tags", "对标签进行排序"),
|
||||||
("Separate remote window", "使用独立远程窗口"),
|
("Separate remote window", "使用独立远程窗口"),
|
||||||
("separate window", "独立窗口"),
|
("separate window", "独立窗口"),
|
||||||
|
("Split", "拆分"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", "Tags sortieren"),
|
("Sort tags", "Tags sortieren"),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", "Ordenar etiquetas"),
|
("Sort tags", "Ordenar etiquetas"),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", "Ordina etichette"),
|
("Sort tags", "Ordina etichette"),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", "Labels sorteren"),
|
("Sort tags", "Labels sorteren"),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", "Сортировка меток"),
|
("Sort tags", "Сортировка меток"),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -526,5 +526,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Sort tags", ""),
|
("Sort tags", ""),
|
||||||
("Separate remote window", ""),
|
("Separate remote window", ""),
|
||||||
("separate window", ""),
|
("separate window", ""),
|
||||||
|
("Split", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user