diff --git a/flutter/lib/desktop/pages/connection_page.dart b/flutter/lib/desktop/pages/connection_page.dart index 7af8c9911..1d4928bbd 100644 --- a/flutter/lib/desktop/pages/connection_page.dart +++ b/flutter/lib/desktop/pages/connection_page.dart @@ -330,12 +330,14 @@ class _ConnectionPageState extends State void onConnect( {bool isFileTransfer = false, bool isViewCamera = false, - bool isTerminal = false}) { + bool isTerminal = false, + bool isTcpTunneling = false}) { var id = _idController.id; connect(context, id, isFileTransfer: isFileTransfer, isViewCamera: isViewCamera, - isTerminal: isTerminal); + isTerminal: isTerminal, + isTcpTunneling: isTcpTunneling); } /// UI for the remote ID TextField. @@ -568,6 +570,14 @@ class _ConnectionPageState extends State '${translate('Terminal')} (beta)', () => onConnect(isTerminal: true) ), + // `connect` routes this through the + // desktop path only; the peer card gates + // it the same way. + if (isDesktop) + ( + 'TCP tunneling', + () => onConnect(isTcpTunneling: true) + ), ] .map((e) => MenuEntryButton( childBuilder: (TextStyle? style) =>