diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-10-21 13:02:21 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-10-21 13:02:21 +0400 |
commit | fde19bfe7e7bb01d9c78928e342afb953d28b2b2 (patch) | |
tree | b606bc67752287bb60e3f422f56be2d9b37c3dad /source/blender/editors/space_view3d/view3d_view.c | |
parent | c9d16d0ddb01c06bddbb5178ad1ae4829d8ab7ab (diff) |
bugfix [#24347] Fly mode: Immediately after pressing Shift+F, keys W and S work, keys A, D, R and F do not
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_view.c')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_view.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 8b3d99e355d..15e04f31f2f 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -2282,30 +2282,32 @@ static void flyEvent(FlyInfo *fly, wmEvent *event) /* impliment WASD keys */ case FLY_MODAL_DIR_FORWARD: if (fly->speed < 0.0f) fly->speed= -fly->speed; /* flip speed rather then stopping, game like motion */ - else fly->speed += fly->grid; /* increse like mousewheel if were already moving in that difection*/ + else if (fly->axis==2) fly->speed += fly->grid; /* increse like mousewheel if were already moving in that difection*/ fly->axis= 2; break; case FLY_MODAL_DIR_BACKWARD: - if (fly->speed>0) fly->speed= -fly->speed; - else fly->speed -= fly->grid; + if (fly->speed > 0.0f) fly->speed= -fly->speed; + else if (fly->axis==2) fly->speed -= fly->grid; fly->axis= 2; break; case FLY_MODAL_DIR_LEFT: if (fly->speed < 0.0f) fly->speed= -fly->speed; + else if (fly->axis==0) fly->speed += fly->grid; fly->axis= 0; break; case FLY_MODAL_DIR_RIGHT: if (fly->speed > 0.0f) fly->speed= -fly->speed; + else if (fly->axis==0) fly->speed -= fly->grid; fly->axis= 0; break; - - case FLY_MODAL_DIR_UP: - if (fly->speed > 0.0f) fly->speed= -fly->speed; - fly->axis= 1; - break; - case FLY_MODAL_DIR_DOWN: if (fly->speed < 0.0f) fly->speed= -fly->speed; + else if (fly->axis==1) fly->speed += fly->grid; + fly->axis= 1; + break; + case FLY_MODAL_DIR_UP: + if (fly->speed > 0.0f) fly->speed= -fly->speed; + else if (fly->axis==1) fly->speed -= fly->grid; fly->axis= 1; break; |