summaryrefslogtreecommitdiff
path: root/src/ui/inputwidget.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/inputwidget.c')
-rw-r--r--src/ui/inputwidget.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/ui/inputwidget.c b/src/ui/inputwidget.c
index aa55f3f0..6a8d428a 100644
--- a/src/ui/inputwidget.c
+++ b/src/ui/inputwidget.c
@@ -1115,7 +1115,14 @@ static void updateBuffered_InputWidget_(iInputWidget *d) {
1115} 1115}
1116 1116
1117void setText_InputWidget(iInputWidget *d, const iString *text) { 1117void setText_InputWidget(iInputWidget *d, const iString *text) {
1118 setTextUndoable_InputWidget(d, text, iFalse);
1119}
1120
1121void setTextUndoable_InputWidget(iInputWidget *d, const iString *text, iBool isUndoable) {
1118 if (!d) return; 1122 if (!d) return;
1123 if (isUndoable) {
1124 pushUndo_InputWidget_(d);
1125 }
1119 if (d->inFlags & isUrl_InputWidgetFlag) { 1126 if (d->inFlags & isUrl_InputWidgetFlag) {
1120 if (prefs_App()->decodeUserVisibleURLs) { 1127 if (prefs_App()->decodeUserVisibleURLs) {
1121 iString *enc = collect_String(copy_String(text)); 1128 iString *enc = collect_String(copy_String(text));
@@ -1139,7 +1146,9 @@ void setText_InputWidget(iInputWidget *d, const iString *text) {
1139 iString *nfcText = collect_String(copy_String(text)); 1146 iString *nfcText = collect_String(copy_String(text));
1140 normalize_String(nfcText); 1147 normalize_String(nfcText);
1141#if !LAGRANGE_USE_SYSTEM_TEXT_INPUT 1148#if !LAGRANGE_USE_SYSTEM_TEXT_INPUT
1142 clearUndo_InputWidget_(d); 1149 if (!isUndoable) {
1150 clearUndo_InputWidget_(d);
1151 }
1143 splitToLines_(nfcText, &d->lines); 1152 splitToLines_(nfcText, &d->lines);
1144 iAssert(!isEmpty_Array(&d->lines)); 1153 iAssert(!isEmpty_Array(&d->lines));
1145 iForEach(Array, i, &d->lines) { 1154 iForEach(Array, i, &d->lines) {
@@ -1175,6 +1184,12 @@ void setTextCStr_InputWidget(iInputWidget *d, const char *cstr) {
1175 delete_String(str); 1184 delete_String(str);
1176} 1185}
1177 1186
1187void setTextUndoableCStr_InputWidget(iInputWidget *d, const char *cstr, iBool isUndoable) {
1188 iString *str = newCStr_String(cstr);
1189 setTextUndoable_InputWidget(d, str, isUndoable);
1190 delete_String(str);
1191}
1192
1178void selectAll_InputWidget(iInputWidget *d) { 1193void selectAll_InputWidget(iInputWidget *d) {
1179#if LAGRANGE_USE_SYSTEM_TEXT_INPUT 1194#if LAGRANGE_USE_SYSTEM_TEXT_INPUT
1180 if (d->sysCtrl) { 1195 if (d->sysCtrl) {