Fix #30323: Graph view in the Movie Clip Editor does not stay open
authorSergey Sharybin <sergey.vfx@gmail.com>
Thu, 23 Feb 2012 18:51:24 +0000 (18:51 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Thu, 23 Feb 2012 18:51:24 +0000 (18:51 +0000)
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
source/blender/makesdna/DNA_space_types.h

index 97da05e3f764941ba0c9c6cd386672885467c502..9edf4fab280c55ec18f20e30f47e00045525c053 100644 (file)
@@ -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;
index ed724ae5807cf8ca68a7ad042cd7ec0b9846d2ed..bcdeff6cf1b0374f3e83b4e13cf5678b7ab210da 100644 (file)
@@ -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 {