Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/editors/animation/anim_markers.c56
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;
}
}