[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60207] trunk/blender: bugfix: [#34663] Cannot rotate view while using Knife tool with Maya preset

Dalai Felinto dfelinto at gmail.com
Tue Sep 17 22:35:17 CEST 2013


Revision: 60207
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60207
Author:   dfelinto
Date:     2013-09-17 20:35:17 +0000 (Tue, 17 Sep 2013)
Log Message:
-----------
bugfix: [#34663] Cannot rotate view while using Knife tool with Maya preset

fix as suggested by Ton Roosendaal in tracker:
"the knife tool has a "MODE_PANNING" state, it could be nice to set this
in the modal map as well, to define the shortcut(s) that have to be passed on."

Modified Paths:
--------------
    trunk/blender/release/scripts/presets/keyconfig/maya.py
    trunk/blender/source/blender/editors/mesh/editmesh_knife.c

Modified: trunk/blender/release/scripts/presets/keyconfig/maya.py
===================================================================
--- trunk/blender/release/scripts/presets/keyconfig/maya.py	2013-09-17 20:11:02 UTC (rev 60206)
+++ trunk/blender/release/scripts/presets/keyconfig/maya.py	2013-09-17 20:35:17 UTC (rev 60207)
@@ -688,6 +688,31 @@
 kmi = km.keymap_items.new('object.subdivision_set', 'FIVE', 'PRESS', ctrl=True)
 kmi.properties.level = 5
 
+# Knife Tool
+km = kc.keymaps.new('Knife Tool Modal Map', space_type='EMPTY', region_type='WINDOW', modal=True)
+
+kmi = km.keymap_items.new_modal('CANCEL', 'ESC', 'ANY', any=True)
+kmi = km.keymap_items.new_modal('PANNING', 'LEFTMOUSE', 'ANY', alt=True)
+kmi = km.keymap_items.new_modal('ADD_CUT', 'LEFTMOUSE', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('CANCEL', 'RIGHTMOUSE', 'ANY', any=True)
+kmi = km.keymap_items.new_modal('CONFIRM', 'RET', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('CONFIRM', 'NUMPAD_ENTER', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('CONFIRM', 'SPACE', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('NEW_CUT', 'E', 'PRESS')
+
+kmi = km.keymap_items.new_modal('SNAP_MIDPOINT_ON', 'LEFT_CTRL', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('SNAP_MIDPOINT_OFF', 'LEFT_CTRL', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('SNAP_MIDPOINT_ON', 'RIGHT_CTRL', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('SNAP_MIDPOINT_OFF', 'RIGHT_CTRL', 'RELEASE', any=True)
+
+kmi = km.keymap_items.new_modal('IGNORE_SNAP_ON', 'LEFT_SHIFT', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('IGNORE_SNAP_OFF', 'LEFT_SHIFT', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('IGNORE_SNAP_ON', 'RIGHT_SHIFT', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('IGNORE_SNAP_OFF', 'RIGHT_SHIFT', 'RELEASE', any=True)
+
+kmi = km.keymap_items.new_modal('ANGLE_SNAP_TOGGLE', 'C', 'PRESS')
+kmi = km.keymap_items.new_modal('CUT_THROUGH_TOGGLE', 'Z', 'PRESS')
+
 # Map Curve
 km = kc.keymaps.new('Curve', space_type='EMPTY', region_type='WINDOW', modal=False)
 

Modified: trunk/blender/source/blender/editors/mesh/editmesh_knife.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_knife.c	2013-09-17 20:11:02 UTC (rev 60206)
+++ trunk/blender/source/blender/editors/mesh/editmesh_knife.c	2013-09-17 20:35:17 UTC (rev 60207)
@@ -3123,7 +3123,8 @@
 	KNF_MODEL_IGNORE_SNAP_OFF,
 	KNF_MODAL_ADD_CUT,
 	KNF_MODAL_ANGLE_SNAP_TOGGLE,
-	KNF_MODAL_CUT_THROUGH_TOGGLE
+	KNF_MODAL_CUT_THROUGH_TOGGLE,
+	KNF_MODAL_PANNING
 };
 
 wmKeyMap *knifetool_modal_keymap(wmKeyConfig *keyconf)
@@ -3139,6 +3140,7 @@
 		{KNF_MODAL_CUT_THROUGH_TOGGLE, "CUT_THROUGH_TOGGLE", 0, "Toggle Cut Through", ""},
 		{KNF_MODAL_NEW_CUT, "NEW_CUT", 0, "End Current Cut", ""},
 		{KNF_MODAL_ADD_CUT, "ADD_CUT", 0, "Add Cut", ""},
+		{KNF_MODAL_PANNING, "PANNING", 0, "Panning", ""},
 		{0, NULL, 0, NULL, NULL}
 	};
 
@@ -3152,6 +3154,7 @@
 
 	/* items for modal map */
 	WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_CANCEL);
+	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_ANY, KM_ANY, 0, KNF_MODAL_PANNING);
 	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_ANY, 0, KNF_MODAL_ADD_CUT);
 	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, KNF_MODAL_CANCEL);
 	WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_CONFIRM);
@@ -3277,6 +3280,20 @@
 
 				ED_region_tag_redraw(kcd->ar);
 				break;
+			case KNF_MODAL_PANNING:
+				if (event->val != KM_RELEASE) {
+					if (kcd->mode != MODE_PANNING) {
+						kcd->prevmode = kcd->mode;
+						kcd->mode = MODE_PANNING;
+					}
+				}
+				else {
+					kcd->mode = kcd->prevmode;
+				}
+
+				ED_region_tag_redraw(kcd->ar);
+				return OPERATOR_PASS_THROUGH;
+				break;
 		}
 	}
 	else { /* non-modal-mapped events */
@@ -3287,19 +3304,6 @@
 			case WHEELUPMOUSE:
 			case WHEELDOWNMOUSE:
 				return OPERATOR_PASS_THROUGH;
-			case MIDDLEMOUSE:
-				if (event->val != KM_RELEASE) {
-					if (kcd->mode != MODE_PANNING)
-						kcd->prevmode = kcd->mode;
-					kcd->mode = MODE_PANNING;
-				}
-				else {
-					kcd->mode = kcd->prevmode;
-				}
-
-				ED_region_tag_redraw(kcd->ar);
-				return OPERATOR_PASS_THROUGH;
-
 			case MOUSEMOVE: /* mouse moved somewhere to select another loop */
 				if (kcd->mode != MODE_PANNING) {
 					knifetool_update_mval_i(kcd, event->mval);




More information about the Bf-blender-cvs mailing list