diff options
author | Ton Roosendaal <ton@blender.org> | 2004-11-06 17:59:28 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-11-06 17:59:28 +0300 |
commit | 6e755e5e98145d175bcbcb800174fb0433b17c43 (patch) | |
tree | d96f6e3f269babde873de87ea2ce1d3ecb3f0203 /source/blender/src/editview.c | |
parent | 6ef4d3aec550aaed724a2b2b91d6822853a41323 (diff) |
Fix for bug #1487
On OSX, the SHIFT key release event got lost after a 'mouse pointer warp'.
Replaced the warp call in ghost, and updated the fly mode code to read
events better.
Nice positive side effect; using arrow keys to move while transform (e.g.
grab/rotate/scale) goes much much nicer now!
Diffstat (limited to 'source/blender/src/editview.c')
-rw-r--r-- | source/blender/src/editview.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/src/editview.c b/source/blender/src/editview.c index 9024589f497..838ddde1771 100644 --- a/source/blender/src/editview.c +++ b/source/blender/src/editview.c @@ -1613,20 +1613,22 @@ void fly(void) warp_pointer(cent[0], cent[1]); - cent[0]= (curarea->winx)/2; - cent[1]= (curarea->winy)/2; + /* we have to rely on events to give proper mousecoords after a warp_pointer */ + mval[0]= cent[0]= (curarea->winx)/2; + mval[1]= cent[1]= (curarea->winy)/2; headerprint("Fly"); while(loop) { - getmouseco_areawin(mval); + while(qtest()) { toets= extern_qread(&val); if(val) { - if(toets==ESCKEY) { + if(toets==MOUSEY) getmouseco_areawin(mval); + else if(toets==ESCKEY) { VECCOPY(G.vd->camera->loc, oldvec); VECCOPY(G.vd->camera->rot, oldrot); loop= 0; |