From 10aa2fa9026067ad489197bcb43337d714c07cab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 24 May 2022 14:57:30 +0200 Subject: [PATCH] Redraw Motion Paths panel after creating motion path Add notifier such that the Motion Paths panel in the Object Properties tab gets redrawn, after using the Create Motion Path button. The reason it didn't update was that the button actually triggers a popup, and then executes in the context of that popup. It now actually emits a `ND_DRAW_ANIMVIZ` notifier, and ensures that the panel redraws on that. --- source/blender/editors/object/object_edit.c | 6 ++++++ source/blender/editors/space_buttons/space_buttons.c | 3 +++ 2 files changed, 9 insertions(+) diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index ff25859b56b..c0637f4ac04 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -1241,6 +1241,9 @@ static int object_calculate_paths_exec(bContext *C, wmOperator *op) ED_objects_recalculate_paths_selected(C, scene, OBJECT_PATH_CALC_RANGE_FULL); /* notifiers for updates */ + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW_ANIMVIZ, NULL); + /* Note: the notifier below isn't actually correct, but kept around just to be on the safe side. + * If further testing shows it's not necessary (for both bones and objects) removal is fine. */ WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM | ND_POSE, NULL); return OPERATOR_FINISHED; @@ -1310,6 +1313,9 @@ static int object_update_paths_exec(bContext *C, wmOperator *op) ED_objects_recalculate_paths_selected(C, scene, OBJECT_PATH_CALC_RANGE_FULL); /* notifiers for updates */ + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW_ANIMVIZ, NULL); + /* Note: the notifier below isn't actually correct, but kept around just to be on the safe side. + * If further testing shows it's not necessary (for both bones and objects) removal is fine. */ WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM | ND_POSE, NULL); return OPERATOR_FINISHED; diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 1d0061ab7d8..052af39319c 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -724,6 +724,9 @@ static void buttons_area_listener(const wmSpaceTypeListenerParams *params) /* Needed to refresh context path when changing active particle system index. */ buttons_area_redraw(area, BCONTEXT_PARTICLE); break; + case ND_DRAW_ANIMVIZ: + buttons_area_redraw(area, BCONTEXT_OBJECT); + break; default: /* Not all object RNA props have a ND_ notifier (yet) */ ED_area_tag_redraw(area);