diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-12-29 14:05:39 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-12-29 14:05:39 +0400 |
commit | 57e8c5870aa2657db5c2b69f35112a91d95843f1 (patch) | |
tree | 231a2e4bab82d50eee462c25b27a93387fd0a811 | |
parent | 9a3855e6554be195ea5cbae7eb23a8c56f39e1cb (diff) |
Text3d: setting upper/lower case now uses the selection
-rw-r--r-- | source/blender/editors/curve/editfont.c | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c index c89f79ba55d..440ded669c0 100644 --- a/source/blender/editors/curve/editfont.c +++ b/source/blender/editors/curve/editfont.c @@ -1480,29 +1480,32 @@ static int set_case(bContext *C, int ccase) EditFont *ef = cu->editfont; wchar_t *str; int len; + int selstart, selend; - len = wcslen(ef->textbuf); - str = ef->textbuf; - while (len) { - if (*str >= 'a' && *str <= 'z') - *str -= 32; - len--; - str++; - } - - if (ccase == CASE_LOWER) { - len = wcslen(ef->textbuf); - str = ef->textbuf; + if (BKE_vfont_select_get(obedit, &selstart, &selend)) { + len = (selend - selstart) + 1; + str = &ef->textbuf[selstart]; while (len) { - if (*str >= 'A' && *str <= 'Z') { - *str += 32; - } + if (*str >= 'a' && *str <= 'z') + *str -= 32; len--; str++; } - } - text_update_edited(C, scene, obedit, 1, FO_EDIT); + if (ccase == CASE_LOWER) { + len = (selend - selstart) + 1; + str = &ef->textbuf[selstart]; + while (len) { + if (*str >= 'A' && *str <= 'Z') { + *str += 32; + } + len--; + str++; + } + } + + text_update_edited(C, scene, obedit, 1, FO_EDIT); + } return OPERATOR_FINISHED; } |