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.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/ui/inputwidget.c b/src/ui/inputwidget.c
index cf128017..9571a97e 100644
--- a/src/ui/inputwidget.c
+++ b/src/ui/inputwidget.c
@@ -80,6 +80,7 @@ enum iInputWidgetFlag {
80 markWords_InputWidgetFlag = iBit(8), 80 markWords_InputWidgetFlag = iBit(8),
81 needUpdateBuffer_InputWidgetFlag = iBit(9), 81 needUpdateBuffer_InputWidgetFlag = iBit(9),
82 enterKeyEnabled_InputWidgetFlag = iBit(10), 82 enterKeyEnabled_InputWidgetFlag = iBit(10),
83 enterKeyInsertsLineFeed_InputWidgetFlag = iBit(11),
83}; 84};
84 85
85/*----------------------------------------------------------------------------------------------*/ 86/*----------------------------------------------------------------------------------------------*/
@@ -347,8 +348,11 @@ void init_InputWidget(iInputWidget *d, size_t maxLen) {
347 d->lastCursor = 0; 348 d->lastCursor = 0;
348 d->cursorLine = 0; 349 d->cursorLine = 0;
349 d->lastUpdateWidth = 0; 350 d->lastUpdateWidth = 0;
350 d->verticalMoveX = -1; /* TODO: Use this. */ 351 d->verticalMoveX = -1; /* TODO: Use this. */
351 d->inFlags = eatEscape_InputWidgetFlag | enterKeyEnabled_InputWidgetFlag; 352 d->inFlags = eatEscape_InputWidgetFlag | enterKeyEnabled_InputWidgetFlag;
353 if (deviceType_App() != desktop_AppDeviceType) {
354 d->inFlags |= enterKeyInsertsLineFeed_InputWidgetFlag;
355 }
352 iZap(d->mark); 356 iZap(d->mark);
353 setMaxLen_InputWidget(d, maxLen); 357 setMaxLen_InputWidget(d, maxLen);
354 d->maxLayoutLines = iInvalidSize; 358 d->maxLayoutLines = iInvalidSize;
@@ -464,6 +468,10 @@ void setValidator_InputWidget(iInputWidget *d, iInputWidgetValidatorFunc validat
464 d->validatorContext = context; 468 d->validatorContext = context;
465} 469}
466 470
471void setEnterInsertsLF_InputWidget(iInputWidget *d, iBool enterInsertsLF) {
472 iChangeFlags(d->inFlags, enterKeyInsertsLineFeed_InputWidgetFlag, enterInsertsLF);
473}
474
467void setEnterKeyEnabled_InputWidget(iInputWidget *d, iBool enterKeyEnabled) { 475void setEnterKeyEnabled_InputWidget(iInputWidget *d, iBool enterKeyEnabled) {
468 iChangeFlags(d->inFlags, enterKeyEnabled_InputWidgetFlag, enterKeyEnabled); 476 iChangeFlags(d->inFlags, enterKeyEnabled_InputWidgetFlag, enterKeyEnabled);
469} 477}
@@ -1166,7 +1174,7 @@ static iBool processEvent_InputWidget_(iInputWidget *d, const SDL_Event *ev) {
1166 case SDLK_KP_ENTER: 1174 case SDLK_KP_ENTER:
1167 if (mods == KMOD_SHIFT || (d->maxLen == 0 && 1175 if (mods == KMOD_SHIFT || (d->maxLen == 0 &&
1168 ~d->inFlags & isUrl_InputWidgetFlag && 1176 ~d->inFlags & isUrl_InputWidgetFlag &&
1169 deviceType_App() != desktop_AppDeviceType)) { 1177 d->inFlags & enterKeyInsertsLineFeed_InputWidgetFlag)) {
1170 pushUndo_InputWidget_(d); 1178 pushUndo_InputWidget_(d);
1171 deleteMarked_InputWidget_(d); 1179 deleteMarked_InputWidget_(d);
1172 insertChar_InputWidget_(d, '\n'); 1180 insertChar_InputWidget_(d, '\n');