diff options
author | Jiri Hnidek <jiri.hnidek@tul.cz> | 2005-11-20 16:17:28 +0300 |
---|---|---|
committer | Jiri Hnidek <jiri.hnidek@tul.cz> | 2005-11-20 16:17:28 +0300 |
commit | 691a155047532670a5b0506735826ecaf5f3de08 (patch) | |
tree | be80b27ad005e7fbd64301632bf88a2947bb0892 /source/blender/src/interface.c | |
parent | 8927ed4e254d22d1584ad78dcc35fffb78a7d022 (diff) |
- Ctrl left/right arrow ... jumps between special characters (not only
between / and \. I hope, that list of special character is complete.
Diffstat (limited to 'source/blender/src/interface.c')
-rw-r--r-- | source/blender/src/interface.c | 64 |
1 files changed, 53 insertions, 11 deletions
diff --git a/source/blender/src/interface.c b/source/blender/src/interface.c index f589efa71e1..6558fa8ec86 100644 --- a/source/blender/src/interface.c +++ b/source/blender/src/interface.c @@ -1537,6 +1537,50 @@ static int ui_do_but_ROW(uiBlock *block, uiBut *but) return but->retval; } +/* return 1 if char ch is special character otherwise + * it returns 0 */ +static short test_special_char(char ch) +{ + switch(ch) { + case '\\': + case '/': + case '~': + case '!': + case '@': + case '#': + case '$': + case '%': + case '^': + case '&': + case '*': + case '(': + case ')': + case '+': + case '=': + case '{': + case '}': + case '[': + case ']': + case ':': + case ';': + case '\'': + case '\"': + case '<': + case '>': + case ',': + case '.': + case '?': + case '_': + case '-': + case ' ': + return 1; + break; + default: + break; + } + return 0; +} + static int ui_do_but_TEX(uiBut *but) { unsigned short dev; @@ -1673,13 +1717,12 @@ static int ui_do_but_TEX(uiBut *but) but->selend = but->pos; } else if(G.qual & LR_CTRLKEY) { - while(but->pos < len){ + /* jump betweenn special characters (/,\,_,-, etc.), + * look at function test_special_char() for complete + * list of special character, ctr -> */ + while(but->pos < len) { but->pos++; -#ifdef WIN32 - if(str[but->pos]=='\\') break; -#else - if(str[but->pos]=='/') break; -#endif + if(test_special_char(str[but->pos])) break; } } else { but->pos++; @@ -1723,13 +1766,12 @@ static int ui_do_but_TEX(uiBut *but) but->selsta = but->pos; } else if(G.qual & LR_CTRLKEY) { + /* jump betweenn special characters (/,\,_,-, etc.), + * look at function test_special_char() for complete + * list of special character, ctr -> */ while(but->pos > 0){ but->pos--; -#ifdef WIN32 - if(str[but->pos]=='\\') break; -#else - if(str[but->pos]=='/') break; -#endif + if(test_special_char(str[but->pos])) break; } } else { if(but->pos>0) but->pos--; |