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_action/space_action.c39
-rw-r--r--source/blender/editors/space_graph/space_graph.c21
2 files changed, 36 insertions, 24 deletions
diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c
index febbcd03645..cb826d86a21 100644
--- a/source/blender/editors/space_action/space_action.c
+++ b/source/blender/editors/space_action/space_action.c
@@ -395,12 +395,23 @@ static void saction_channel_region_message_subscribe(
};
/* All dopesheet filter settings, etc. affect the drawing of this editor,
- * so just whitelist the entire struct for updates
+ * also same applies for all animation-related datatypes that may appear here,
+ * so just whitelist the entire structs for updates
*/
{
wmMsgParams_RNA msg_key_params = {{{0}}};
StructRNA *type_array[] = {
- &RNA_DopeSheet,
+ &RNA_DopeSheet, /* dopesheet filters */
+
+ &RNA_ActionGroup, /* channel groups */
+
+ &RNA_FCurve, /* F-Curve */
+ &RNA_Keyframe,
+ &RNA_FCurveSample,
+
+ &RNA_GreasePencil, /* Grease Pencil */
+ &RNA_GPencilLayer,
+ &RNA_GPencilFrame,
};
for (int i = 0; i < ARRAY_SIZE(type_array); i++) {
@@ -470,8 +481,8 @@ static void action_main_region_listener(
}
static void saction_main_region_message_subscribe(
- const struct bContext *UNUSED(C),
- struct WorkSpace *UNUSED(workspace), struct Scene *scene,
+ const struct bContext *C,
+ struct WorkSpace *workspace, struct Scene *scene,
struct bScreen *screen, struct ScrArea *sa, struct ARegion *ar,
struct wmMsgBus *mbus)
{
@@ -508,24 +519,8 @@ static void saction_main_region_message_subscribe(
}
}
- /* All dopesheet filter settings, etc. affect the drawing of this editor,
- * so just whitelist the entire struct for updates
- */
- {
- wmMsgParams_RNA msg_key_params = {{{0}}};
- StructRNA *type_array[] = {
- &RNA_DopeSheet,
- };
-
- for (int i = 0; i < ARRAY_SIZE(type_array); i++) {
- msg_key_params.ptr.type = type_array[i];
- WM_msg_subscribe_rna_params(
- mbus,
- &msg_key_params,
- &msg_sub_value_region_tag_redraw,
- __func__);
- }
- }
+ /* Now run the general "channels region" one - since channels and main should be in sync */
+ saction_channel_region_message_subscribe(C, workspace, scene, screen, sa, ar, mbus);
}
/* editor level listener */
diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c
index 3732b78a026..6ecb454096d 100644
--- a/source/blender/editors/space_graph/space_graph.c
+++ b/source/blender/editors/space_graph/space_graph.c
@@ -527,12 +527,29 @@ static void graph_region_message_subscribe(
}
/* All dopesheet filter settings, etc. affect the drawing of this editor,
- * so just whitelist the entire struct for updates
+ * also same applies for all animation-related datatypes that may appear here,
+ * so just whitelist the entire structs for updates
*/
{
wmMsgParams_RNA msg_key_params = {{{0}}};
StructRNA *type_array[] = {
- &RNA_DopeSheet,
+ &RNA_DopeSheet, /* dopesheet filters */
+
+ &RNA_ActionGroup, /* channel groups */
+ &RNA_FCurve, /* F-Curve */
+ &RNA_Keyframe,
+ &RNA_FCurveSample,
+
+ &RNA_FModifier, /* F-Modifiers (XXX: Why can't we just do all subclasses too?) */
+ &RNA_FModifierCycles,
+ &RNA_FModifierEnvelope,
+ &RNA_FModifierEnvelopeControlPoint,
+ &RNA_FModifierFunctionGenerator,
+ &RNA_FModifierGenerator,
+ &RNA_FModifierLimits,
+ &RNA_FModifierNoise,
+ &RNA_FModifierPython,
+ &RNA_FModifierStepped,
};
for (int i = 0; i < ARRAY_SIZE(type_array); i++) {