diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc index a954857a5fa..34a1f1be072 100644 --- a/source/blender/editors/space_node/node_draw.cc +++ b/source/blender/editors/space_node/node_draw.cc @@ -2213,7 +2213,8 @@ static void node_draw_basis(const bContext &C, bNodeInstanceKey key) { const float iconbutw = NODE_HEADER_ICON_SIZE; - const bool show_preview = (snode.overlay.flag & SN_OVERLAY_SHOW_PREVIEWS) && + const bool show_preview = (snode.overlay.flag & SN_OVERLAY_SHOW_OVERLAYS) && + (snode.overlay.flag & SN_OVERLAY_SHOW_PREVIEWS) && (node.flag & NODE_PREVIEW) && (U.experimental.use_shader_node_previews || ntree.type != NTREE_SHADER); @@ -2302,7 +2303,7 @@ static void node_draw_basis(const bContext &C, float iconofs = rct.xmax - 0.35f * U.widget_unit; /* Preview. */ - if (node_is_previewable(ntree, node)) { + if (node_is_previewable(snode, ntree, node)) { iconofs -= iconbutw; UI_block_emboss_set(&block, UI_EMBOSS_NONE); uiBut *but = uiDefIconBut(&block, @@ -3511,7 +3512,8 @@ static void draw_nodetree(const bContext &C, } else if (ntree.type == NTREE_SHADER && U.experimental.use_shader_node_previews && BKE_scene_uses_shader_previews(CTX_data_scene(&C)) && - U.experimental.use_shader_node_previews) + snode->overlay.flag & SN_OVERLAY_SHOW_OVERLAYS && + snode->overlay.flag & SN_OVERLAY_SHOW_PREVIEWS) { tree_draw_ctx.nested_group_infos = get_nested_previews(C, *snode); } diff --git a/source/blender/editors/space_node/node_edit.cc b/source/blender/editors/space_node/node_edit.cc index a9f6948e751..f9f9b42bcbd 100644 --- a/source/blender/editors/space_node/node_edit.cc +++ b/source/blender/editors/space_node/node_edit.cc @@ -1124,8 +1124,13 @@ void node_set_hidden_sockets(bNode *node, int set) } } -bool node_is_previewable(const bNodeTree &ntree, const bNode &node) +bool node_is_previewable(const SpaceNode &snode, const bNodeTree &ntree, const bNode &node) { + if (!(snode.overlay.flag & SN_OVERLAY_SHOW_OVERLAYS) || + !(snode.overlay.flag & SN_OVERLAY_SHOW_PREVIEWS)) + { + return false; + } if (ntree.type == NTREE_SHADER) { return U.experimental.use_shader_node_previews && !(node.is_frame() || node.is_group_input() || node.is_group_output() || @@ -1578,7 +1583,7 @@ static void node_flag_toggle_exec(SpaceNode *snode, int toggle_flag) for (bNode *node : snode->edittree->all_nodes()) { if (node->flag & SELECT) { - if (toggle_flag == NODE_PREVIEW && !node_is_previewable(*snode->edittree, *node)) { + if (toggle_flag == NODE_PREVIEW && !node_is_previewable(*snode, *snode->edittree, *node)) { continue; } if (toggle_flag == NODE_OPTIONS && @@ -1598,7 +1603,7 @@ static void node_flag_toggle_exec(SpaceNode *snode, int toggle_flag) for (bNode *node : snode->edittree->all_nodes()) { if (node->flag & SELECT) { - if (toggle_flag == NODE_PREVIEW && !node_is_previewable(*snode->edittree, *node)) { + if (toggle_flag == NODE_PREVIEW && !node_is_previewable(*snode, *snode->edittree, *node)) { continue; } if (toggle_flag == NODE_OPTIONS && diff --git a/source/blender/editors/space_node/node_intern.hh b/source/blender/editors/space_node/node_intern.hh index 7a00cf2ce16..b16741ca6c6 100644 --- a/source/blender/editors/space_node/node_intern.hh +++ b/source/blender/editors/space_node/node_intern.hh @@ -339,7 +339,7 @@ bool composite_node_editable(bContext *C); bool node_has_hidden_sockets(bNode *node); void node_set_hidden_sockets(bNode *node, int set); -bool node_is_previewable(const bNodeTree &ntree, const bNode &node); +bool node_is_previewable(const SpaceNode &snode, const bNodeTree &ntree, const bNode &node); int node_render_changed_exec(bContext *, wmOperator *); bNodeSocket *node_find_indicated_socket(SpaceNode &snode, const float2 &cursor,