From 2254d2bdca372086cf51ddbcfd4e2f6e15e43b0d Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 23 Feb 2012 18:51:24 +0000 Subject: [PATCH] Fix #30323: Graph view in the Movie Clip Editor does not stay open In fact, Graph View wasn't been supposed to be opened in Clip show editor mode. Made curves view unavailable from Clip view mode and store it's alignment in a runtime flag in SpaceClip structure. --- source/blender/editors/space_clip/space_clip.c | 17 +++++++++++++++-- source/blender/makesdna/DNA_space_types.h | 7 ++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/source/blender/editors/space_clip/space_clip.c b/source/blender/editors/space_clip/space_clip.c index 97da05e3f76..9edf4fab280 100644 --- a/source/blender/editors/space_clip/space_clip.c +++ b/source/blender/editors/space_clip/space_clip.c @@ -244,7 +244,6 @@ static void clip_listener(ScrArea *sa, wmNotifier *wmn) /* no break! */ case ND_FRAME_RANGE: - ED_area_tag_refresh(sa); ED_area_tag_redraw(sa); break; } @@ -611,6 +610,16 @@ static void clip_refresh(const bContext *C, ScrArea *sa) ar_main->alignment= RGN_ALIGN_NONE; view_changed= 1; } + if (ar_preview && ar_preview->alignment != RGN_ALIGN_NONE) { + /* store graph region align */ + if (ar_preview->alignment == RGN_ALIGN_TOP) + sc->runtime_flag &= ~SC_GRAPH_BOTTOM; + else + sc->runtime_flag |= SC_GRAPH_BOTTOM; + + ar_preview->alignment= RGN_ALIGN_NONE; + view_changed= 1; + } break; case SC_VIEW_GRAPH: if (ar_preview && (ar_preview->flag & RGN_FLAG_HIDDEN)) { @@ -624,7 +633,11 @@ static void clip_refresh(const bContext *C, ScrArea *sa) view_changed= 1; } if (ar_preview && !ELEM(ar_preview->alignment, RGN_ALIGN_TOP, RGN_ALIGN_BOTTOM)) { - ar_preview->alignment= RGN_ALIGN_TOP; + if (sc->runtime_flag & SC_GRAPH_BOTTOM) + ar_preview->alignment= RGN_ALIGN_BOTTOM; + else + ar_preview->alignment= RGN_ALIGN_TOP; + view_changed= 1; } break; diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index ed724ae5807..bcdeff6cf1b 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -520,7 +520,9 @@ typedef struct SpaceClip { defined when drawing and used for mouse position calculation */ /* movie postprocessing */ - int postproc_flag, pad2; + int postproc_flag; + + int runtime_flag; /* different runtime flags */ } SpaceClip; /* view3d Now in DNA_view3d_types.h */ @@ -912,6 +914,9 @@ enum { #define SC_VIEW_CLIP 0 #define SC_VIEW_GRAPH 1 +/* SpaceClip->runtime_flag */ +#define SC_GRAPH_BOTTOM (1<<0) + /* space types, moved from DNA_screen_types.h */ /* Do NOT change order, append on end. types are hardcoded needed */ enum {