diff options
Diffstat (limited to 'src/ui/inputwidget.c')
-rw-r--r-- | src/ui/inputwidget.c | 17 |
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 | ||
1117 | void setText_InputWidget(iInputWidget *d, const iString *text) { | 1117 | void setText_InputWidget(iInputWidget *d, const iString *text) { |
1118 | setTextUndoable_InputWidget(d, text, iFalse); | ||
1119 | } | ||
1120 | |||
1121 | void 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 | ||
1187 | void 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 | |||
1178 | void selectAll_InputWidget(iInputWidget *d) { | 1193 | void 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) { |