fix TextField cursor problem

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages 2022-08-28 21:43:18 +08:00
parent 6ea16e4cdb
commit b004f4b9ee
3 changed files with 42 additions and 81 deletions

View File

@ -806,6 +806,8 @@ Future<bool> loginDialog() async {
var userNameMsg = "";
String pass = "";
var passMsg = "";
var userContontroller = TextEditingController(text: userName);
var pwdController = TextEditingController(text: pass);
var isInProgress = false;
var completer = Completer<bool>();
@ -833,13 +835,10 @@ Future<bool> loginDialog() async {
),
Expanded(
child: TextField(
onChanged: (s) {
userName = s;
},
decoration: InputDecoration(
border: OutlineInputBorder(),
errorText: userNameMsg.isNotEmpty ? userNameMsg : null),
controller: TextEditingController(text: userName),
controller: userContontroller,
),
),
],
@ -859,13 +858,10 @@ Future<bool> loginDialog() async {
Expanded(
child: TextField(
obscureText: true,
onChanged: (s) {
pass = s;
},
decoration: InputDecoration(
border: OutlineInputBorder(),
errorText: passMsg.isNotEmpty ? passMsg : null),
controller: TextEditingController(text: pass),
controller: pwdController,
),
),
],
@ -896,8 +892,8 @@ Future<bool> loginDialog() async {
isInProgress = false;
});
};
userName = userName;
pass = pass;
userName = userContontroller.text;
pass = pwdController.text;
if (userName.isEmpty) {
userNameMsg = translate("Username missed");
cancel();

View File

@ -1025,7 +1025,6 @@ class _ComboBox extends StatelessWidget {
void changeServer() async {
Map<String, dynamic> oldOptions = jsonDecode(await bind.mainGetOptions());
print("${oldOptions}");
String idServer = oldOptions['custom-rendezvous-server'] ?? "";
var idServerMsg = "";
String relayServer = oldOptions['relay-server'] ?? "";
@ -1033,6 +1032,10 @@ void changeServer() async {
String apiServer = oldOptions['api-server'] ?? "";
var apiServerMsg = "";
var key = oldOptions['key'] ?? "";
var idController = TextEditingController(text: idServer);
var relayController = TextEditingController(text: relayServer);
var apiController = TextEditingController(text: apiServer);
var keyController = TextEditingController(text: key);
var isInProgress = false;
gFFI.dialogManager.show((setState, close) {
@ -1057,13 +1060,10 @@ void changeServer() async {
),
Expanded(
child: TextField(
onChanged: (s) {
idServer = s;
},
decoration: InputDecoration(
border: OutlineInputBorder(),
errorText: idServerMsg.isNotEmpty ? idServerMsg : null),
controller: TextEditingController(text: idServer),
controller: idController,
),
),
],
@ -1082,14 +1082,11 @@ void changeServer() async {
),
Expanded(
child: TextField(
onChanged: (s) {
relayServer = s;
},
decoration: InputDecoration(
border: OutlineInputBorder(),
errorText:
relayServerMsg.isNotEmpty ? relayServerMsg : null),
controller: TextEditingController(text: relayServer),
controller: relayController,
),
),
],
@ -1108,14 +1105,11 @@ void changeServer() async {
),
Expanded(
child: TextField(
onChanged: (s) {
apiServer = s;
},
decoration: InputDecoration(
border: OutlineInputBorder(),
errorText:
apiServerMsg.isNotEmpty ? apiServerMsg : null),
controller: TextEditingController(text: apiServer),
controller: apiController,
),
),
],
@ -1134,13 +1128,10 @@ void changeServer() async {
),
Expanded(
child: TextField(
onChanged: (s) {
key = s;
},
decoration: InputDecoration(
border: OutlineInputBorder(),
),
controller: TextEditingController(text: key),
controller: keyController,
),
),
],
@ -1171,10 +1162,10 @@ void changeServer() async {
isInProgress = false;
});
};
idServer = idServer.trim();
relayServer = relayServer.trim();
apiServer = apiServer.trim();
key = key.trim();
idServer = idController.text.trim();
relayServer = relayController.text.trim();
apiServer = apiController.text.trim().toLowerCase();
key = keyController.text.trim();
if (idServer.isNotEmpty) {
idServerMsg = translate(
@ -1230,6 +1221,7 @@ void changeWhiteList() async {
Map<String, dynamic> oldOptions = jsonDecode(await bind.mainGetOptions());
var newWhiteList = ((oldOptions['whitelist'] ?? "") as String).split(',');
var newWhiteListField = newWhiteList.join('\n');
var controller = TextEditingController(text: newWhiteListField);
var msg = "";
var isInProgress = false;
gFFI.dialogManager.show((setState, close) {
@ -1246,15 +1238,12 @@ void changeWhiteList() async {
children: [
Expanded(
child: TextField(
onChanged: (s) {
newWhiteListField = s;
},
maxLines: null,
decoration: InputDecoration(
border: OutlineInputBorder(),
errorText: msg.isEmpty ? null : translate(msg),
),
controller: TextEditingController(text: newWhiteListField),
controller: controller,
),
),
],
@ -1277,7 +1266,7 @@ void changeWhiteList() async {
msg = "";
isInProgress = true;
});
newWhiteListField = newWhiteListField.trim();
newWhiteListField = controller.text.trim();
var newWhiteList = "";
if (newWhiteListField.isEmpty) {
// pass
@ -1319,6 +1308,9 @@ void changeSocks5Proxy() async {
username = socks[1];
password = socks[2];
}
var proxyController = TextEditingController(text: proxy);
var userController = TextEditingController(text: username);
var pwdController = TextEditingController(text: password);
var isInProgress = false;
gFFI.dialogManager.show((setState, close) {
@ -1343,13 +1335,10 @@ void changeSocks5Proxy() async {
),
Expanded(
child: TextField(
onChanged: (s) {
proxy = s;
},
decoration: InputDecoration(
border: OutlineInputBorder(),
errorText: proxyMsg.isNotEmpty ? proxyMsg : null),
controller: TextEditingController(text: proxy),
controller: proxyController,
),
),
],
@ -1368,13 +1357,10 @@ void changeSocks5Proxy() async {
),
Expanded(
child: TextField(
onChanged: (s) {
username = s;
},
decoration: InputDecoration(
border: OutlineInputBorder(),
),
controller: TextEditingController(text: username),
controller: userController,
),
),
],
@ -1393,13 +1379,10 @@ void changeSocks5Proxy() async {
),
Expanded(
child: TextField(
onChanged: (s) {
password = s;
},
decoration: InputDecoration(
border: OutlineInputBorder(),
),
controller: TextEditingController(text: password),
controller: pwdController,
),
),
],
@ -1428,9 +1411,9 @@ void changeSocks5Proxy() async {
isInProgress = false;
});
};
proxy = proxy.trim();
username = username.trim();
password = password.trim();
proxy = proxyController.text.trim();
username = userController.text.trim();
password = pwdController.text.trim();
if (proxy.isNotEmpty) {
proxyMsg =

View File

@ -462,6 +462,7 @@ class _PeerCardState extends State<_PeerCard>
void _rename(String id) async {
var isInProgress = false;
var name = await bind.mainGetPeerOption(id: id, key: 'alias');
var controller = TextEditingController(text: name);
if (widget.type == PeerType.ab) {
final peer = gFFI.abModel.peers.firstWhere((p) => id == p['id']);
if (peer == null) {
@ -470,7 +471,6 @@ class _PeerCardState extends State<_PeerCard>
name = peer['alias'] ?? "";
}
}
final k = GlobalKey<FormState>();
gFFI.dialogManager.show((setState, close) {
return CustomAlertDialog(
title: Text(translate("Rename")),
@ -480,22 +480,9 @@ class _PeerCardState extends State<_PeerCard>
Container(
padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0),
child: Form(
key: k,
child: TextFormField(
controller: TextEditingController(text: name),
controller: controller,
decoration: InputDecoration(border: OutlineInputBorder()),
onChanged: (newStr) {
name = newStr;
},
validator: (s) {
if (s == null || s.isEmpty) {
return translate("Empty");
}
return null;
},
onSaved: (s) {
name = s ?? "unnamed";
},
),
),
),
@ -513,11 +500,8 @@ class _PeerCardState extends State<_PeerCard>
setState(() {
isInProgress = true;
});
if (k.currentState != null) {
if (k.currentState!.validate()) {
k.currentState!.save();
await bind.mainSetPeerOption(
id: id, key: 'alias', value: name);
name = controller.text;
await bind.mainSetPeerOption(id: id, key: 'alias', value: name);
if (widget.type == PeerType.ab) {
gFFI.abModel.setPeerOption(id, 'alias', name);
await gFFI.abModel.updateAb();
@ -527,8 +511,6 @@ class _PeerCardState extends State<_PeerCard>
});
}
close();
}
}
setState(() {
isInProgress = false;
});