diff options
Diffstat (limited to 'source/blender/src/toets.c')
-rw-r--r-- | source/blender/src/toets.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/source/blender/src/toets.c b/source/blender/src/toets.c index 626aec10a2e..caca9974d4e 100644 --- a/source/blender/src/toets.c +++ b/source/blender/src/toets.c @@ -73,6 +73,8 @@ #include "BIF_editseq.h" #include "BIF_editsound.h" #include "BIF_editmesh.h" +#include "BIF_imasel.h" +#include "BIF_editparticle.h" #include "BIF_interface.h" #include "BKE_object.h" #include "BIF_poseobject.h" @@ -108,6 +110,9 @@ #include "BIF_poseobject.h" +#define VIEW_ZOOM_OUT_FACTOR (1.15f) +#define VIEW_ZOOM_IN_FACTOR (1.0f/VIEW_ZOOM_OUT_FACTOR) + /* ------------------------------------------------------------------------- */ static int is_an_active_object(void *ob) { @@ -155,6 +160,7 @@ void persptoetsen(unsigned short event) float phi, si, q1[4], vec[3]; static int perspo=1; int preview3d_event= 1; + short mouseloc[2]; float new_dist, orig_ofs[3]; @@ -243,14 +249,20 @@ void persptoetsen(unsigned short event) if(G.vd->persp==2) { G.vd->camzoom= MAX2(-30, G.vd->camzoom-5); } - else if(G.vd->dist<10.0*G.vd->far) G.vd->dist*=1.2f; + else if(G.vd->dist<10.0*G.vd->far) { + getmouseco_areawin(mouseloc); + view_zoom_mouseloc(VIEW_ZOOM_OUT_FACTOR, mouseloc); + } if(G.vd->persp!=1) preview3d_event= 0; } else if(event==PADPLUSKEY) { if(G.vd->persp==2) { G.vd->camzoom= MIN2(300, G.vd->camzoom+5); } - else if(G.vd->dist> 0.001*G.vd->grid) G.vd->dist*=.83333f; + else if(G.vd->dist> 0.001*G.vd->grid) { + getmouseco_areawin(mouseloc); + view_zoom_mouseloc(VIEW_ZOOM_IN_FACTOR, mouseloc); + } if(G.vd->persp!=1) preview3d_event= 0; } else if(event==PAD5) { @@ -466,6 +478,10 @@ int blenderqread(unsigned short event, short val) activate_fileselect(FILE_LOADLIB, "Load Library", G.lib, 0); return 0; } + else if(G.qual==LR_CTRLKEY) { + activate_imageselect(FILE_LOADLIB, "Load Library", G.lib, 0); + return 0; + } break; case F2KEY: if(G.qual==0) { @@ -506,6 +522,15 @@ int blenderqread(unsigned short event, short val) activate_fileselect(FILE_MAIN, "Data Select", str, NULL); return 0; } + else if(G.qual==LR_CTRLKEY) { + + memset(str, 0, 16); + ob= OBACT; + if(ob) strcpy(str, ob->id.name); + + activate_imageselect(FILE_MAIN, "Data Select", str, 0); + return 0; + } else if(G.qual==0) { extern_set_butspace(event, 1); } @@ -716,6 +741,9 @@ int blenderqread(unsigned short event, short val) } } } + else if(G.qual&LR_CTRLKEY && G.qual&LR_SHIFTKEY){ + PE_set_particle_edit(); + } break; case BACKSPACEKEY: |