diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index a4ed6b1bd1a..7f191822bf8 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -31,7 +31,7 @@ extern "C" { /* Blender file format version. */ #define BLENDER_FILE_VERSION BLENDER_VERSION -#define BLENDER_FILE_SUBVERSION 66 +#define BLENDER_FILE_SUBVERSION 67 /* Minimum Blender version that supports reading file written with the current * version. Older Blender versions will test this and cancel loading the file, showing a warning to diff --git a/source/blender/blenloader/intern/versioning_400.cc b/source/blender/blenloader/intern/versioning_400.cc index 1a037b72269..c2d33842b91 100644 --- a/source/blender/blenloader/intern/versioning_400.cc +++ b/source/blender/blenloader/intern/versioning_400.cc @@ -62,6 +62,7 @@ #include "BKE_nla.h" #include "BKE_node_runtime.hh" #include "BKE_scene.hh" +#include "BKE_screen.hh" #include "BKE_tracking.h" #include "IMB_imbuf_enums.h" @@ -4329,6 +4330,22 @@ void blo_do_versions_400(FileData *fd, Library * /*lib*/, Main *bmain) fix_built_in_curve_attribute_defaults(bmain); } + if (!MAIN_VERSION_FILE_ATLEAST(bmain, 402, 67)) { + LISTBASE_FOREACH (bScreen *, screen, &bmain->screens) { + LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) { + LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) { + if (sl->spacetype == SPACE_CLIP) { + ARegion *region = BKE_area_find_region_type(area, RGN_TYPE_WINDOW); + if (region != nullptr) { + View2D *v2d = ®ion->v2d; + v2d->flag &= ~V2D_VIEWSYNC_SCREEN_TIME; + } + } + } + } + } + } + /** * Always bump subversion in BKE_blender_version.h when adding versioning * code here, and wrap it inside a MAIN_VERSION_FILE_ATLEAST check. diff --git a/source/blender/makesrna/intern/rna_space.cc b/source/blender/makesrna/intern/rna_space.cc index 4c84abb0431..57f8bc15020 100644 --- a/source/blender/makesrna/intern/rna_space.cc +++ b/source/blender/makesrna/intern/rna_space.cc @@ -877,7 +877,12 @@ static bool rna_Space_view2d_sync_get(PointerRNA *ptr) ARegion *region; area = rna_area_from_space(ptr); /* can be nullptr */ - region = BKE_area_find_region_type(area, RGN_TYPE_WINDOW); + if (area->spacetype == SPACE_CLIP) { + region = BKE_area_find_region_type(area, RGN_TYPE_PREVIEW); + } + else { + region = BKE_area_find_region_type(area, RGN_TYPE_WINDOW); + } if (region) { View2D *v2d = ®ion->v2d; return (v2d->flag & V2D_VIEWSYNC_SCREEN_TIME) != 0; @@ -900,7 +905,12 @@ static void rna_Space_view2d_sync_set(PointerRNA *ptr, bool value) return; } - region = BKE_area_find_region_type(area, RGN_TYPE_WINDOW); + if (area->spacetype == SPACE_CLIP) { + region = BKE_area_find_region_type(area, RGN_TYPE_PREVIEW); + } + else { + region = BKE_area_find_region_type(area, RGN_TYPE_WINDOW); + } if (region) { View2D *v2d = ®ion->v2d; if (value) { @@ -918,7 +928,12 @@ static void rna_Space_view2d_sync_update(Main * /*bmain*/, Scene * /*scene*/, Po ARegion *region; area = rna_area_from_space(ptr); /* can be nullptr */ - region = BKE_area_find_region_type(area, RGN_TYPE_WINDOW); + if (area->spacetype == SPACE_CLIP) { + region = BKE_area_find_region_type(area, RGN_TYPE_PREVIEW); + } + else { + region = BKE_area_find_region_type(area, RGN_TYPE_WINDOW); + } if (region) { bScreen *screen = (bScreen *)ptr->owner_id;