diff options
Diffstat (limited to 'source/blender/editors/animation/anim_markers.c')
-rw-r--r-- | source/blender/editors/animation/anim_markers.c | 56 |
1 files changed, 10 insertions, 46 deletions
diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c index 8a9f4559140..1e8f2bfc038 100644 --- a/source/blender/editors/animation/anim_markers.c +++ b/source/blender/editors/animation/anim_markers.c @@ -197,59 +197,23 @@ void ED_markers_get_minmax(ListBase *markers, short sel, float *first, float *la { TimeMarker *marker; float min, max; - int selcount = 0; /* sanity check */ //printf("markers = %p - %p, %p\n", markers, markers->first, markers->last); - if (markers == NULL) { - *first = 0.0f; - *last = 0.0f; - return; - } - - if (markers->first && markers->last) { - TimeMarker *fm = markers->first; - TimeMarker *lm = markers->last; - - /* Store last marker in min, and first marker in max, so that later real value calc actually works! [#37146]. */ - min = (float)lm->frame; - max = (float)fm->frame; - } - else { + if (ELEM3(NULL, markers, markers->first, markers->last)) { *first = 0.0f; *last = 0.0f; return; } - - /* count how many markers are usable - see later */ - if (sel) { - for (marker = markers->first; marker; marker = marker->next) { - if (marker->flag & SELECT) - selcount++; - } - } - else - selcount = BLI_countlist(markers); - - /* if only selected are to be considered, only consider the selected ones - * (optimization for not searching list) - */ - if (selcount > 1) { - for (marker = markers->first; marker; marker = marker->next) { - if (sel) { - if (marker->flag & SELECT) { - if (marker->frame < min) - min = (float)marker->frame; - if (marker->frame > max) - max = (float)marker->frame; - } - } - else { - if (marker->frame < min) - min = (float)marker->frame; - if (marker->frame > max) - max = (float)marker->frame; - } + + min = FLT_MAX; + max = -FLT_MAX; + for (marker = markers->first; marker; marker = marker->next) { + if (!sel || (marker->flag & SELECT)) { + if (marker->frame < min) + min = (float)marker->frame; + if (marker->frame > max) + max = (float)marker->frame; } } |