[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32330] trunk/blender/source/blender/ editors: bugfix [#24148] unable to get keyboard mappings to work in the text window

Campbell Barton ideasman42 at gmail.com
Tue Oct 5 20:35:03 CEST 2010


Revision: 32330
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32330
Author:   campbellbarton
Date:     2010-10-05 20:35:02 +0200 (Tue, 05 Oct 2010)

Log Message:
-----------
bugfix [#24148] unable to get keyboard mappings to work in the text window
this exposes another problem: RNA_property_is_set cant be used on properties set from a keymap, they are always set. for now check for string length.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_console/console_ops.c
    trunk/blender/source/blender/editors/space_text/text_ops.c

Modified: trunk/blender/source/blender/editors/space_console/console_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_console/console_ops.c	2010-10-05 16:43:01 UTC (rev 32329)
+++ trunk/blender/source/blender/editors/space_console/console_ops.c	2010-10-05 18:35:02 UTC (rev 32330)
@@ -403,8 +403,14 @@
 
 static int insert_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
-	if(!RNA_property_is_set(op->ptr, "text")) {
+	// if(!RNA_property_is_set(op->ptr, "text")) { /* always set from keymap XXX */
+	if(!RNA_string_length(op->ptr, "text")) {
 		char str[2] = {event->ascii, '\0'};
+
+		/* if alt/ctrl/super are pressed pass through */
+		if(event->alt || event->ctrl || event->oskey)
+			return OPERATOR_PASS_THROUGH;
+
 		RNA_string_set(op->ptr, "text", str);
 	}
 	return insert_exec(C, op);

Modified: trunk/blender/source/blender/editors/space_text/text_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/text_ops.c	2010-10-05 16:43:01 UTC (rev 32329)
+++ trunk/blender/source/blender/editors/space_text/text_ops.c	2010-10-05 18:35:02 UTC (rev 32330)
@@ -2317,18 +2317,19 @@
 
 static int insert_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
-	char str[2];
 	int ret;
-	/* XXX old code from winqreadtextspace, is it still needed somewhere? */
-	/* smartass code to prevent the CTRL/ALT events below from not working! */
-	/*if(qual & (LR_ALTKEY|LR_CTRLKEY))
-		if(!ispunct(ascii)) 
-			ascii= 0;*/
 
-	str[0]= event->ascii;
-	str[1]= '\0';
+	// if(!RNA_property_is_set(op->ptr, "text")) { /* always set from keymap XXX */
+	if(!RNA_string_length(op->ptr, "text")) {
+		char str[2] = {event->ascii, '\0'};
 
-	RNA_string_set(op->ptr, "text", str);
+		/* if alt/ctrl/super are pressed pass through */
+		if(event->alt || event->ctrl || event->oskey)
+			return OPERATOR_PASS_THROUGH;
+
+		RNA_string_set(op->ptr, "text", str);
+	}
+
 	ret = insert_exec(C, op);
 	
 	/* run the script while editing, evil but useful */





More information about the Bf-blender-cvs mailing list