fix: web v2, keyboard mode (#9180)

Signed-off-by: fufesou <linlong1266@gmail.com>
This commit is contained in:
fufesou 2024-08-27 00:00:33 +08:00 committed by GitHub
parent 690a2c8399
commit c68ce7dd84
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 6 additions and 4 deletions

View File

@ -1612,7 +1612,9 @@ class _KeyboardMenu extends StatelessWidget {
// If use flutter to grab keys, we can only use one mode.
// Map mode and Legacy mode, at least one of them is supported.
String? modeOnly;
if (isInputSourceFlutter) {
// Keep both map and legacy mode on web at the moment.
// TODO: Remove legacy mode after web supports translate mode on web.
if (isInputSourceFlutter && isDesktop) {
if (bind.sessionIsKeyboardModeSupported(
sessionId: ffi.sessionId, mode: kKeyMapMode)) {
modeOnly = kKeyMapMode;

View File

@ -508,7 +508,7 @@ class InputModel {
}
// * Currently mobile does not enable map mode
if ((isDesktop || isWebDesktop) && keyboardMode == 'map') {
if ((isDesktop || isWebDesktop) && keyboardMode == kKeyMapMode) {
mapKeyboardModeRaw(e);
} else {
legacyKeyboardModeRaw(e);
@ -537,7 +537,7 @@ class InputModel {
}
// * Currently mobile does not enable map mode
if ((isDesktop || isWebDesktop)) {
if ((isDesktop || isWebDesktop) && keyboardMode == kKeyMapMode) {
// FIXME: e.character is wrong for dead keys, eg: ^ in de
newKeyboardMode(
e.character ?? '',

View File

@ -351,7 +351,7 @@ class RustdeskImpl {
bool sessionIsKeyboardModeSupported(
{required UuidValue sessionId, required String mode, dynamic hint}) {
return mode == kKeyLegacyMode;
return [kKeyLegacyMode, kKeyMapMode].contains(mode);
}
bool sessionIsMultiUiSession({required UuidValue sessionId, dynamic hint}) {