diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index fa0697ba9..d337c368e 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -509,6 +509,7 @@ void NodeParamView::SetSelectedNodes(const QVector &nodes, bool emit_signal) { QVector items; + NodeParamViewContext *scrolled_ctx = nullptr; foreach (const Node::ContextPair &n, nodes) { for (auto it = context_items_.cbegin(); it != context_items_.cend(); @@ -519,6 +520,9 @@ void NodeParamView::SetSelectedNodes(const QVector &nodes, if (item) { items.append(item); + if (!scrolled_ctx) { + scrolled_ctx = ctx; + } } } } @@ -533,6 +537,12 @@ void NodeParamView::SetSelectedNodes(const QVector &nodes, param_scroll_area_, scrolled_to->geometry().topLeft()); param_scroll_area_->verticalScrollBar()->setValue(viewport_pos.y()); + + // Make sure the dock/tab containing this node is visible + if (scrolled_ctx) { + scrolled_ctx->SetExpanded(true); + scrolled_ctx->raise(); + } } }