diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2010-09-18 12:37:47 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2010-09-18 12:37:47 +0400 |
commit | e2f439586498992969be5ac5631c51533545f3d4 (patch) | |
tree | c73c1292520a45c842d3d0976abcb04f8c2c9992 /source/blender/editors | |
parent | d81315e9d221b3fdd0dafedff58398226590f468 (diff) |
Fixed problems with outliner update in same cases caused by my previous commit.
This troubles were caused by "break" of ND_OBJECT case in outliner area listener,
so not all cases were handled.
Handle more data and actions in outline listener, but not refresh when it's
actually unneeded (there where problems with it without that "break" -- extra
refreshing could be made).
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/object/object_constraint.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_outliner/space_outliner.c | 14 |
2 files changed, 13 insertions, 3 deletions
diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c index baf71cb21d6..f5d87df10a1 100644 --- a/source/blender/editors/object/object_constraint.c +++ b/source/blender/editors/object/object_constraint.c @@ -808,7 +808,7 @@ static int constraint_delete_exec (bContext *C, wmOperator *op) ED_object_constraint_update(ob); /* needed to set the flags on posebones correctly */ /* notifiers */ - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); + WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT|NA_REMOVED, ob); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c index 1a46c32713e..5e11d3502c1 100644 --- a/source/blender/editors/space_outliner/space_outliner.c +++ b/source/blender/editors/space_outliner/space_outliner.c @@ -113,11 +113,21 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn) break; case ND_BONE_ACTIVE: case ND_BONE_SELECT: + case ND_PARENT: ED_region_tag_redraw(ar); break; + case ND_CONSTRAINT: + switch(wmn->action) { + case NA_ADDED: + case NA_REMOVED: + case NA_RENAME: + ED_region_tag_redraw(ar); + break; + } + break; case ND_MODIFIER: - if(wmn->action == NA_RENAME) - ED_region_tag_redraw(ar); + /* all modifier actions now */ + ED_region_tag_redraw(ar); break; } break; |