Fix: A few missing outliner selection sync tags

Add selection syncing for object add named (e.g. drag and drop from
outliner to 3D view), outliner right click (a sync when the context menu
is cancelled), and for object selection from Python.
This commit is contained in:
Nathan Craddock 2020-05-26 16:41:19 -06:00
parent 18f33f293b
commit f772a4b8fa
3 changed files with 5 additions and 0 deletions

View File

@ -2859,6 +2859,7 @@ static int add_named_exec(bContext *C, wmOperator *op)
DEG_id_tag_update(&scene->id, ID_RECALC_SELECT);
WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene);
WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, scene);
ED_outliner_select_sync_from_object_tag(C);
return OPERATOR_FINISHED;
}

View File

@ -2382,6 +2382,7 @@ static int do_outliner_operation_event(
/* Only redraw, don't rebuild here because TreeElement pointers will
* become invalid and operations will crash. */
ED_region_tag_redraw_no_rebuild(region);
ED_outliner_select_sync_from_outliner(C, soops);
}
set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel);

View File

@ -41,6 +41,8 @@
#include "DEG_depsgraph.h"
#include "ED_outliner.h"
#include "rna_internal.h" /* own include */
static const EnumPropertyItem space_items[] = {
@ -114,6 +116,7 @@ static void rna_Object_select_set(
Scene *scene = CTX_data_scene(C);
DEG_id_tag_update(&scene->id, ID_RECALC_SELECT);
WM_main_add_notifier(NC_SCENE | ND_OB_SELECT, scene);
ED_outliner_select_sync_from_object_tag(C);
}
static bool rna_Object_select_get(Object *ob, bContext *C, ViewLayer *view_layer)