diff options
author | Ton Roosendaal <ton@blender.org> | 2004-12-13 00:13:07 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-12-13 00:13:07 +0300 |
commit | a9128a5109fad96eb9537ac2096d8f7328291dbd (patch) | |
tree | fdb49ceb675b16ab6298b74ce264624256632070 | |
parent | d422cbb54467a012e675c6fc820a6d5b6900b6e9 (diff) |
Bug fix, after irc report sk1p:
frame-sliding (LMB) in action, nla, sound and ipo window went into very
tight while loop, causing cpu to choke. Added nice idle.
Bug fix, found self while testing:
- relative.blend, editmode
- delete part, exit editmode
- enter editmode, undo twice, exit editmode -> crash
The trick to copy 'old' locations of vertices to keys isnt undo-resistant
yet. This fix at least doesnt crash, but copying doesnt work when undo-ing
back to previous editmode session (indices just differ from current mesh...)
-rw-r--r-- | source/blender/src/editaction.c | 1 | ||||
-rw-r--r-- | source/blender/src/editmesh.c | 2 | ||||
-rw-r--r-- | source/blender/src/editnla.c | 1 | ||||
-rw-r--r-- | source/blender/src/editsound.c | 4 | ||||
-rw-r--r-- | source/blender/src/space.c | 1 |
5 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/src/editaction.c b/source/blender/src/editaction.c index 45f9b850595..bed71e1a398 100644 --- a/source/blender/src/editaction.c +++ b/source/blender/src/editaction.c @@ -2470,6 +2470,7 @@ void winqreadactionspace(ScrArea *sa, void *spacedata, BWinEvent *evt) force_draw_plus(SPACE_IPO, 1); force_draw_plus(SPACE_BUTS, 1); } + else PIL_sleep_ms(30); } while(get_mbut() & mousebut); } diff --git a/source/blender/src/editmesh.c b/source/blender/src/editmesh.c index ddc3be4addd..6a7372ae16a 100644 --- a/source/blender/src/editmesh.c +++ b/source/blender/src/editmesh.c @@ -1192,7 +1192,7 @@ void load_editMesh(void) i = 0; mvert = me->mvert; while(eve) { - if (eve->keyindex >= 0) { // old vertex + if (eve->keyindex >= 0 && eve->keyindex < currkey->totelem) { // valid old vertex if(currkey == actkey) { if (actkey == me->key->refkey) { VECCOPY(fp, mvert->co); diff --git a/source/blender/src/editnla.c b/source/blender/src/editnla.c index a61fac1bdb6..a979332e30e 100644 --- a/source/blender/src/editnla.c +++ b/source/blender/src/editnla.c @@ -312,6 +312,7 @@ void winqreadnlaspace(ScrArea *sa, void *spacedata, BWinEvent *evt) force_draw_plus(SPACE_VIEW3D, 1); force_draw_plus(SPACE_IPO, 1); } + else PIL_sleep_ms(30); } while(get_mbut() & mousebut); } diff --git a/source/blender/src/editsound.c b/source/blender/src/editsound.c index b47bf4c580e..fc2ff3c3fb4 100644 --- a/source/blender/src/editsound.c +++ b/source/blender/src/editsound.c @@ -85,6 +85,9 @@ #include "SYS_System.h" +#include "PIL_time.h" + + /* this might move to the external header */ void* sound_get_libraryinterface(void); @@ -145,6 +148,7 @@ void winqreadsoundspace(ScrArea *sa, void *spacedata, BWinEvent *evt) update_for_newframe(); force_draw_plus(SPACE_VIEW3D, 1); } + else PIL_sleep_ms(30); } while(get_mbut() & mousebut); ssound->flag &= ~SND_CFRA_NUM; diff --git a/source/blender/src/space.c b/source/blender/src/space.c index c9a4573f27b..4cd187a3a85 100644 --- a/source/blender/src/space.c +++ b/source/blender/src/space.c @@ -1797,6 +1797,7 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt) update_for_newframe(); force_draw_all(0); /* To make constraint sliders redraw */ } + else PIL_sleep_ms(30); } while(get_mbut() & mousebut); } |