mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-04-09 23:31:29 +03:00
fix: remote id, update text and reserve selection (#10867)
Signed-off-by: fufesou <linlong1266@gmail.com>
This commit is contained in:
@@ -3705,3 +3705,18 @@ Widget workaroundWindowBorder(BuildContext context, Widget child) {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void updateTextAndPreserveSelection(TextEditingController controller, String text) {
|
||||||
|
final preSelectionStart = controller.selection.start;
|
||||||
|
final preSelectionEnd = controller.selection.end;
|
||||||
|
// Only care about select all for now.
|
||||||
|
final isSelected = preSelectionEnd > preSelectionStart;
|
||||||
|
|
||||||
|
// Set text will make the selection invalid.
|
||||||
|
controller.text = text;
|
||||||
|
|
||||||
|
if (isSelected) {
|
||||||
|
controller.selection = TextSelection(
|
||||||
|
baseOffset: 0, extentOffset: controller.value.text.length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -225,6 +225,7 @@ class _ConnectionPageState extends State<ConnectionPage>
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Get.put<TextEditingController>(_idEditingController);
|
||||||
Get.put<IDTextEditingController>(_idController);
|
Get.put<IDTextEditingController>(_idController);
|
||||||
windowManager.addListener(this);
|
windowManager.addListener(this);
|
||||||
}
|
}
|
||||||
@@ -395,8 +396,8 @@ class _ConnectionPageState extends State<ConnectionPage>
|
|||||||
FocusNode fieldFocusNode,
|
FocusNode fieldFocusNode,
|
||||||
VoidCallback onFieldSubmitted,
|
VoidCallback onFieldSubmitted,
|
||||||
) {
|
) {
|
||||||
fieldTextEditingController.text = _idController.text;
|
updateTextAndPreserveSelection(
|
||||||
Get.put<TextEditingController>(fieldTextEditingController);
|
fieldTextEditingController, _idController.text);
|
||||||
return Obx(() => TextField(
|
return Obx(() => TextField(
|
||||||
autocorrect: false,
|
autocorrect: false,
|
||||||
enableSuggestions: false,
|
enableSuggestions: false,
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ class _ConnectionPageState extends State<ConnectionPage> {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Get.put<TextEditingController>(_idEditingController);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -214,9 +215,8 @@ class _ConnectionPageState extends State<ConnectionPage> {
|
|||||||
TextEditingController fieldTextEditingController,
|
TextEditingController fieldTextEditingController,
|
||||||
FocusNode fieldFocusNode,
|
FocusNode fieldFocusNode,
|
||||||
VoidCallback onFieldSubmitted) {
|
VoidCallback onFieldSubmitted) {
|
||||||
fieldTextEditingController.text = _idController.text;
|
updateTextAndPreserveSelection(
|
||||||
Get.put<TextEditingController>(
|
fieldTextEditingController, _idController.text);
|
||||||
fieldTextEditingController);
|
|
||||||
return AutoSizeTextField(
|
return AutoSizeTextField(
|
||||||
controller: fieldTextEditingController,
|
controller: fieldTextEditingController,
|
||||||
focusNode: fieldFocusNode,
|
focusNode: fieldFocusNode,
|
||||||
|
|||||||
Reference in New Issue
Block a user