[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56227] trunk/blender/source/blender/ editors/transform/transform.c: Fix #35056: crash running bpy.ops.transform. rotate() in background mode.
Brecht Van Lommel
brechtvanlommel at pandora.be
Mon Apr 22 23:27:45 CEST 2013
Revision: 56227
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56227
Author: blendix
Date: 2013-04-22 21:27:44 +0000 (Mon, 22 Apr 2013)
Log Message:
-----------
Fix #35056: crash running bpy.ops.transform.rotate() in background mode.
Modified Paths:
--------------
trunk/blender/source/blender/editors/transform/transform.c
Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c 2013-04-22 21:13:30 UTC (rev 56226)
+++ trunk/blender/source/blender/editors/transform/transform.c 2013-04-22 21:27:44 UTC (rev 56227)
@@ -1941,17 +1941,20 @@
return 0;
}
- /* Stupid code to have Ctrl-Click on manipulator work ok */
if (event) {
- /* do this only for translation/rotation/resize due to only this
+ /* keymap for shortcut header prints */
+ t->keymap = WM_keymap_active(CTX_wm_manager(C), op->type->modalkeymap);
+
+ /* Stupid code to have Ctrl-Click on manipulator work ok
+ *
+ * do this only for translation/rotation/resize due to only this
* moded are available from manipulator and doing such check could
* lead to keymap conflicts for other modes (see #31584)
*/
if (ELEM3(mode, TFM_TRANSLATION, TFM_ROTATION, TFM_RESIZE)) {
- wmKeyMap *keymap = WM_keymap_active(CTX_wm_manager(C), op->type->modalkeymap);
wmKeyMapItem *kmi;
- for (kmi = keymap->items.first; kmi; kmi = kmi->next) {
+ for (kmi = t->keymap->items.first; kmi; kmi = kmi->next) {
if (kmi->propvalue == TFM_MODAL_SNAP_INV_ON && kmi->val == KM_PRESS) {
if ((ELEM(kmi->type, LEFTCTRLKEY, RIGHTCTRLKEY) && event->ctrl) ||
(ELEM(kmi->type, LEFTSHIFTKEY, RIGHTSHIFTKEY) && event->shift) ||
@@ -1964,11 +1967,8 @@
}
}
}
-
}
- t->keymap = WM_keymap_active(CTX_wm_manager(C), op->type->modalkeymap);
-
initSnapping(t, op); // Initialize snapping data AFTER mode flags
/* EVIL! posemode code can switch translation to rotate when 1 bone is selected. will be removed (ton) */
@@ -4134,7 +4134,7 @@
}
ofs += BLI_snprintf(str + ofs, MAX_INFO_LEN - ofs, ", (");
- {
+ if (t->keymap) {
wmKeyMapItem *kmi = WM_modalkeymap_find_propvalue(t->keymap, TFM_MODAL_RESIZE);
if (kmi) {
ofs += WM_keymap_item_to_string(kmi, str + ofs, MAX_INFO_LEN - ofs);
@@ -6900,7 +6900,7 @@
ofs += BLI_snprintf(str + ofs, MAX_INFO_LEN - ofs, IFACE_("Sequence Slide: %s%s, ("), &tvec[0], t->con.text);
- {
+ if (t->keymap) {
wmKeyMapItem *kmi = WM_modalkeymap_find_propvalue(t->keymap, TFM_MODAL_TRANSLATE);
if (kmi) {
ofs += WM_keymap_item_to_string(kmi, str + ofs, MAX_INFO_LEN - ofs);
More information about the Bf-blender-cvs
mailing list