fix: backquote key will cause crash when using French IME (#892)

This commit is contained in:
Lucas 2024-09-13 19:23:39 +08:00 • committed by GitHub
commit b888202b9b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 18 additions and 8 deletions

View file

@ -12,15 +12,20 @@ Future<void> onInsert(
final textInserted = insertion.textInserted;
// character shortcut events
final execution = await executeCharacterShortcutEvent(
editorState,
textInserted,
characterShortcutEvents,
);
// In France, the backtick key is used to toggle a character style.
// We should prevent the execution of character shortcut events when the
// composing range is not collapsed.
if (insertion.composing.isCollapsed) {
// execute character shortcut events
final execution = await executeCharacterShortcutEvent(
editorState,
textInserted,
characterShortcutEvents,
);
if (execution) {
return;
if (execution) {
return;
}
}
var selection = editorState.selection;

View file

@ -5,7 +5,10 @@ import 'package:flutter/services.dart';
Future<void> onNonTextUpdate(
TextEditingDeltaNonTextUpdate nonTextUpdate,
EditorState editorState,
List<CharacterShortcutEvent> characterShortcutEvents,
) async {
AppFlowyEditorLog.input.debug('onNonTextUpdate: $nonTextUpdate');
// update the selection on Windows
//
// when typing characters with CJK IME on Windows, a non-text update is sent

View file

@ -79,6 +79,7 @@ class KeyboardServiceWidgetState extends State<KeyboardServiceWidget>
onNonTextUpdate: (nonTextUpdate) async => await onNonTextUpdate(
nonTextUpdate,
editorState,
widget.characterShortcutEvents,
),
onPerformAction: (action) async => await onPerformAction(
action,

View file

@ -14,6 +14,7 @@ void main() {
composing: TextRange(start: 0, end: 3),
),
EditorState.blank(),
[],
);
});
});