Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorMatt Ebb <matt@mke3.net>2010-06-28 03:57:58 +0400
committerMatt Ebb <matt@mke3.net>2010-06-28 03:57:58 +0400
commita52632182c9d50d177abe56a037d7a76ed5d1003 (patch)
tree1c8d6fde289fd1f5392e99657d4ef393278bc2d6 /source
parent32f83b91a42a2d8332a371b00637dca8d9f01393 (diff)
[#22682] some missing keymaps
Added proportional influence up/down to transform modal keymap. Also fixed a crash in restoring to previous key map item after edits.
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/transform/transform.c31
-rw-r--r--source/blender/windowmanager/intern/wm_keymap.c7
2 files changed, 28 insertions, 10 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 6532a94971d..beea3c9bee4 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -479,6 +479,8 @@ static void view_editmove(unsigned short event)
#define TFM_MODAL_REMOVE_SNAP 17
/* 18 and 19 used by numinput, defined in transform.h
* */
+#define TFM_MODAL_PROPSIZE_UP 20
+#define TFM_MODAL_PROPSIZE_DOWN 21
/* called in transform_ops.c, on each regeneration of keymaps */
wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
@@ -503,6 +505,8 @@ wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
{TFM_MODAL_REMOVE_SNAP, "REMOVE_SNAP", 0, "Remove Last Snap Point", ""},
{NUM_MODAL_INCREMENT_UP, "INCREMENT_UP", 0, "Numinput Increment Up", ""},
{NUM_MODAL_INCREMENT_DOWN, "INCREMENT_DOWN", 0, "Numinput Increment Down", ""},
+ {TFM_MODAL_PROPSIZE_UP, "PROPORTIONAL_SIZE_UP", 0, "Increase Proportional Influence", ""},
+ {TFM_MODAL_PROPSIZE_DOWN, "PROPORTIONAL_SIZE_DOWN", 0, "Decrease Poportional Influence", ""},
{0, NULL, 0, NULL, NULL}};
wmKeyMap *keymap= WM_modalkeymap_get(keyconf, "Transform Modal Map");
@@ -532,6 +536,11 @@ wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
WM_modalkeymap_add_item(keymap, UPARROWKEY, KM_PRESS, 0, 0, NUM_MODAL_INCREMENT_UP);
WM_modalkeymap_add_item(keymap, DOWNARROWKEY, KM_PRESS, 0, 0, NUM_MODAL_INCREMENT_DOWN);
+
+ WM_modalkeymap_add_item(keymap, PAGEUPKEY, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_UP);
+ WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
+ WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_UP);
+ WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
return keymap;
}
@@ -712,6 +721,20 @@ int transformEvent(TransInfo *t, wmEvent *event)
removeSnapPoint(t);
t->redraw |= TREDRAW_HARD;
break;
+ case TFM_MODAL_PROPSIZE_UP:
+ if(t->flag & T_PROP_EDIT) {
+ t->prop_size*= 1.1f;
+ calculatePropRatio(t);
+ }
+ t->redraw |= TREDRAW_HARD;
+ break;
+ case TFM_MODAL_PROPSIZE_DOWN:
+ if (t->flag & T_PROP_EDIT) {
+ t->prop_size*= 0.90909090f;
+ calculatePropRatio(t);
+ }
+ t->redraw |= TREDRAW_HARD;
+ break;
default:
handled = 0;
break;
@@ -936,10 +959,6 @@ int transformEvent(TransInfo *t, wmEvent *event)
if (t->flag & T_AUTOIK) {
transform_autoik_update(t, 1);
}
- else if(t->flag & T_PROP_EDIT) {
- t->prop_size*= 1.1f;
- calculatePropRatio(t);
- }
else view_editmove(event->type);
t->redraw= 1;
break;
@@ -955,10 +974,6 @@ int transformEvent(TransInfo *t, wmEvent *event)
if (t->flag & T_AUTOIK) {
transform_autoik_update(t, -1);
}
- else if (t->flag & T_PROP_EDIT) {
- t->prop_size*= 0.90909090f;
- calculatePropRatio(t);
- }
else view_editmove(event->type);
t->redraw= 1;
break;
diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c
index ca6cabe3cce..e79d08dc2f1 100644
--- a/source/blender/windowmanager/intern/wm_keymap.c
+++ b/source/blender/windowmanager/intern/wm_keymap.c
@@ -708,8 +708,11 @@ void WM_keymap_restore_item_to_default(bContext *C, wmKeyMap *keymap, wmKeyMapIt
WM_keymap_properties_reset(kmi);
}
- kmi->properties= IDP_CopyProperty(orig->properties);
- kmi->ptr->data= kmi->properties;
+
+ if (orig->properties) {
+ kmi->properties= IDP_CopyProperty(orig->properties);
+ kmi->ptr->data= kmi->properties;
+ }
kmi->propvalue = orig->propvalue;
kmi->type = orig->type;