diff --git a/source/blender/editors/interface/views/abstract_view_item.cc b/source/blender/editors/interface/views/abstract_view_item.cc index 62484c5ea4d..6c6e1cf9adb 100644 --- a/source/blender/editors/interface/views/abstract_view_item.cc +++ b/source/blender/editors/interface/views/abstract_view_item.cc @@ -86,11 +86,15 @@ void AbstractViewItem::deactivate() void AbstractViewItem::change_state_delayed() { - const std::optional should_be_active = this->should_be_active(); - if (should_be_active.has_value() && *should_be_active) { - /* Don't call #activate() here, since this reflects an external state change and therefore - * shouldn't call #on_activate(). */ - set_state_active(); + if (const std::optional should_be_active = this->should_be_active()) { + if (*should_be_active) { + /* Don't call #activate() here, since this reflects an external state change and therefore + * shouldn't call #on_activate(). */ + set_state_active(); + } + else { + is_active_ = false; + } } }