Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiri Hnidek <jiri.hnidek@tul.cz>2005-11-20 16:17:28 +0300
committerJiri Hnidek <jiri.hnidek@tul.cz>2005-11-20 16:17:28 +0300
commit691a155047532670a5b0506735826ecaf5f3de08 (patch)
treebe80b27ad005e7fbd64301632bf88a2947bb0892 /source/blender/src/interface.c
parent8927ed4e254d22d1584ad78dcc35fffb78a7d022 (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.c64
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--;