diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-09-16 03:13:05 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-09-24 08:55:01 +0400 |
commit | 0297f1fdd5b313f5a77848a1fae0b33107acb4d2 (patch) | |
tree | 9c8322222225346d7765a7ea34c9eff48deaebe8 /source/blender/editors/curve | |
parent | 023ac217dd4e0c15bfc484c6c9f2e5d6f1ed8a2e (diff) |
Cleanup: de-duplicate text select logic
Diffstat (limited to 'source/blender/editors/curve')
-rw-r--r-- | source/blender/editors/curve/editfont.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c index 1449453936f..4655deec4c4 100644 --- a/source/blender/editors/curve/editfont.c +++ b/source/blender/editors/curve/editfont.c @@ -977,9 +977,12 @@ static int move_cursor(bContext *C, int type, const bool select) EditFont *ef = cu->editfont; int cursmove = -1; + if ((select) && (ef->selstart == 0)) { + ef->selstart = ef->selend = ef->pos + 1; + } + switch (type) { case LINE_BEGIN: - if ((select) && (ef->selstart == 0)) ef->selstart = ef->selend = ef->pos + 1; while (ef->pos > 0) { if (ef->textbuf[ef->pos - 1] == '\n') break; if (ef->textbufinfo[ef->pos - 1].flag & CU_CHINFO_WRAP) break; @@ -989,7 +992,6 @@ static int move_cursor(bContext *C, int type, const bool select) break; case LINE_END: - if ((select) && (ef->selstart == 0)) ef->selstart = ef->selend = ef->pos + 1; while (ef->pos < ef->len) { if (ef->textbuf[ef->pos] == 0) break; if (ef->textbuf[ef->pos] == '\n') break; @@ -1002,7 +1004,6 @@ static int move_cursor(bContext *C, int type, const bool select) case PREV_WORD: { int pos = ef->pos; - if ((select) && (ef->selstart == 0)) ef->selstart = ef->selend = ef->pos + 1; BLI_str_cursor_step_wchar(ef->textbuf, ef->len, &pos, STRCUR_DIR_PREV, STRCUR_JUMP_DELIM, true); ef->pos = pos; cursmove = FO_CURS; @@ -1012,7 +1013,6 @@ static int move_cursor(bContext *C, int type, const bool select) case NEXT_WORD: { int pos = ef->pos; - if ((select) && (ef->selstart == 0)) ef->selstart = ef->selend = ef->pos + 1; BLI_str_cursor_step_wchar(ef->textbuf, ef->len, &pos, STRCUR_DIR_NEXT, STRCUR_JUMP_DELIM, true); ef->pos = pos; cursmove = FO_CURS; @@ -1020,35 +1020,29 @@ static int move_cursor(bContext *C, int type, const bool select) } case PREV_CHAR: - if ((select) && (ef->selstart == 0)) ef->selstart = ef->selend = ef->pos + 1; ef->pos--; cursmove = FO_CURS; break; case NEXT_CHAR: - if ((select) && (ef->selstart == 0)) ef->selstart = ef->selend = ef->pos + 1; ef->pos++; cursmove = FO_CURS; break; case PREV_LINE: - if ((select) && (ef->selstart == 0)) ef->selstart = ef->selend = ef->pos + 1; cursmove = FO_CURSUP; break; case NEXT_LINE: - if ((select) && (ef->selstart == 0)) ef->selstart = ef->selend = ef->pos + 1; cursmove = FO_CURSDOWN; break; case PREV_PAGE: - if ((select) && (ef->selstart == 0)) ef->selstart = ef->selend = ef->pos + 1; cursmove = FO_PAGEUP; break; case NEXT_PAGE: - if ((select) && (ef->selstart == 0)) ef->selstart = ef->selend = ef->pos + 1; cursmove = FO_PAGEDOWN; break; } |