[Bf-blender-cvs] [17d2e64] master: Hopefully definitively fix the "enter the advanced numinput mode" issue.

Bastien Montagne noreply at git.blender.org
Thu Feb 27 09:51:37 CET 2014


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;




More information about the Bf-blender-cvs mailing list