[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