diff --git a/src/Mod/Spreadsheet/App/PropertySheet.cpp b/src/Mod/Spreadsheet/App/PropertySheet.cpp index b865a1a38b..ee5924457f 100644 --- a/src/Mod/Spreadsheet/App/PropertySheet.cpp +++ b/src/Mod/Spreadsheet/App/PropertySheet.cpp @@ -1291,7 +1291,14 @@ void PropertySheet::invalidateDependants(const App::DocumentObject *docObj) } } -void PropertySheet::slotChangedObject(const App::DocumentObject &obj, const App::Property &prop) { +void PropertySheet::slotChangedObject(const App::DocumentObject &obj, const App::Property &prop) +{ + if (&obj == getContainer()) { + if (&prop == this || !prop.getName() || revAliasProp.count(prop.getName())) + return; + if (stringToAddress(prop.getName(), true).isValid()) + return; + } recomputeDependants(&obj, prop.getName()); } diff --git a/src/Mod/Spreadsheet/App/Sheet.cpp b/src/Mod/Spreadsheet/App/Sheet.cpp index 6b9f585e2e..273fdce1b3 100644 --- a/src/Mod/Spreadsheet/App/Sheet.cpp +++ b/src/Mod/Spreadsheet/App/Sheet.cpp @@ -1568,7 +1568,8 @@ void Sheet::onChanged(const App::Property *prop) { for(auto &range : tmp) rangeUpdated(range); } - + else + cells.slotChangedObject(*this, *prop); App::DocumentObject::onChanged(prop); }