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/space_sequencer/sequencer_thumbnails.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_thumbnails.c b/source/blender/editors/space_sequencer/sequencer_thumbnails.c
index 0ea952d0999..557c233744e 100644
--- a/source/blender/editors/space_sequencer/sequencer_thumbnails.c
+++ b/source/blender/editors/space_sequencer/sequencer_thumbnails.c
@@ -291,20 +291,26 @@ static void sequencer_thumbnail_start_job_if_necessary(const bContext *C,
return;
}
- /* `thumbnail_is_missing` should be set to true if missing image in strip. False when normal call
- * to all strips done. */
- if (v2d->cur.xmax != sseq->runtime.last_thumbnail_area.xmax ||
- v2d->cur.ymax != sseq->runtime.last_thumbnail_area.ymax || thumbnail_is_missing) {
+ /* During rendering, cache is wiped, it doesn't make sense to render thumbnails. */
+ if (G.is_rendering) {
+ return;
+ }
- /* Stop the job first as view has changed. Pointless to continue old job. */
- if (v2d->cur.xmax != sseq->runtime.last_thumbnail_area.xmax ||
- v2d->cur.ymax != sseq->runtime.last_thumbnail_area.ymax) {
- WM_jobs_stop(CTX_wm_manager(C), NULL, thumbnail_start_job);
- }
+ /* Job start requested, but over area which has been processed. Unless `thumbnail_is_missing` is
+ * true, ignore this request as all images are in view. */
+ if (v2d->cur.xmax == sseq->runtime.last_thumbnail_area.xmax &&
+ v2d->cur.ymax == sseq->runtime.last_thumbnail_area.ymax && !thumbnail_is_missing) {
+ return;
+ }
- sequencer_thumbnail_init_job(C, v2d, ed);
- sseq->runtime.last_thumbnail_area = v2d->cur;
+ /* Stop the job first as view has changed. Pointless to continue old job. */
+ if (v2d->cur.xmax != sseq->runtime.last_thumbnail_area.xmax ||
+ v2d->cur.ymax != sseq->runtime.last_thumbnail_area.ymax) {
+ WM_jobs_stop(CTX_wm_manager(C), NULL, thumbnail_start_job);
}
+
+ sequencer_thumbnail_init_job(C, v2d, ed);
+ sseq->runtime.last_thumbnail_area = v2d->cur;
}
void last_displayed_thumbnails_list_free(void *val)