Commit: 17d2e6422cfac5c1fe2f66dba94ad76212876eca
Author: Bastien Montagne
Date:   Thu Feb 27 09:45:44 2014 +0100
https://developer.blender.org/rB17d2e6422cfac5c1fe2f66dba94ad76212876eca

Hopefully definitively fix the "enter the advanced numinput mode" issue.

Hack around event code and check against ascii code, this way keyboards with 
"complex" access to '=' and '*' are still able to toggle numinput modes.

===================================================================

M       source/blender/editors/util/numinput.c

===================================================================

diff --git a/source/blender/editors/util/numinput.c 
b/source/blender/editors/util/numinput.c
index 9cbea14..1f3725a 100644
--- a/source/blender/editors/util/numinput.c
+++ b/source/blender/editors/util/numinput.c
@@ -339,17 +339,13 @@ bool handleNumInput(bContext *C, NumInput *n, const 
wmEvent *event)
                        utf8_buf = ascii;
                        break;
                case EQUALKEY:
+                       /* XXX Advanced mode toggle, hack around keyboards 
without direct access to '=' nor '*'... */
+                       ascii[0] = '=';
+                       break;
                case PADASTERKEY:
-                       if (!(n->flag & NUM_EDIT_FULL)) {
-                               n->flag |= NUM_EDIT_FULL;
-                               n->val_flag[idx] |= NUM_EDITED;
-                               return true;
-                       }
-                       else if (event->ctrl) {
-                               n->flag &= ~NUM_EDIT_FULL;
-                               return true;
-                       }
-                       /* fall-through */
+                       /* XXX Advanced mode toggle, hack around keyboards 
without direct access to '=' nor '*'... */
+                       ascii[0] = '*';
+                       break;
                case PADMINUS:
                case MINUSKEY:
                        if (event->ctrl || !(n->flag & NUM_EDIT_FULL)) {
@@ -402,6 +398,19 @@ bool handleNumInput(bContext *C, NumInput *n, const 
wmEvent *event)
                        break;
        }
 
+       /* XXX Hack around keyboards without direct access to '=' nor '*'... */
+       if (ELEM(ascii[0], '=', '*')) {
+               if (!(n->flag & NUM_EDIT_FULL)) {
+                       n->flag |= NUM_EDIT_FULL;
+                       n->val_flag[idx] |= NUM_EDITED;
+                       return true;
+               }
+               else if (event->ctrl) {
+                       n->flag &= ~NUM_EDIT_FULL;
+                       return true;
+               }
+       }
+
        if (utf8_buf && !utf8_buf[0] && ascii[0]) {
                /* Fallback to ascii. */
                utf8_buf = ascii;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to