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:
authorJoshua Leung <aligorith@gmail.com>2018-06-21 07:07:47 +0300
committerJoshua Leung <aligorith@gmail.com>2018-06-21 07:07:47 +0300
commit417856dae5f072fae929e2a979cc31504f934558 (patch)
treeb39eb6dd800fddef8ccfc7d99bfc9ca768692ced /source/blender/editors/space_action
parented428b2c04cda06011ddb37df1b49ce0a8847ef2 (diff)
Fix: Incorrect submodes being set in Dopesheet/Action Editor when changing modes
This commit fixes a number of problematic corner cases when switching between editors after 2b5050a4cdfbb075d360fd39433acea07432c60b The root cause of these issues was that mode_prev was not being set in many cases, resulting in mode changes to the Timeline and back (via other editors) causing Dopesheet Editors to reset back to "Action Editor" mode. 1) Creating new Dopesheet Editors (e.g. change the default 3D view to a Dopesheet editor) would default to displaying the "Action Editor", since mode/mode_prev == 0 represents the "Action Editor" (for backwards compatability reasons), while mode == 3 is for the "Dopesheet" 2) If you set the Dopesheet Editor to another mode (e.g. "Grease Pencil" mode), change to another editor (e.g. Shaders), then come back, the mode would get reset to "Action Editor".
Diffstat (limited to 'source/blender/editors/space_action')
-rw-r--r--source/blender/editors/space_action/space_action.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c
index 03ab60d554c..31ae47245c5 100644
--- a/source/blender/editors/space_action/space_action.c
+++ b/source/blender/editors/space_action/space_action.c
@@ -104,6 +104,7 @@ static SpaceLink *action_new(const ScrArea *sa, const Scene *scene)
saction->autosnap = SACTSNAP_FRAME;
saction->mode = SACTCONT_DOPESHEET;
+ saction->mode_prev = SACTCONT_DOPESHEET;
saction->ads.filterflag |= ADS_FILTER_SUMMARY;
@@ -858,6 +859,7 @@ static void action_space_subtype_set(ScrArea *sa, int value)
sact->mode = value;
}
else {
+ printf("%p mode prev = %d\n", sact, sact->mode_prev);
sact->mode = sact->mode_prev;
}
}