https://bugs.documentfoundation.org/show_bug.cgi?id=162692
Armin Le Grand <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|[email protected] |[email protected] |desktop.org | --- Comment #24 from Armin Le Grand <[email protected]> --- Checked deeper. The cases DLG_RET_ADD and DLG_RET_EDIT in SID_OPENDLG_CONDFRMT_MANAGER/SID_OPENDLG_CURRENTCONDFRMT_MANAGER in ScCellShell::ExecuteEdit *are* needed. I removed creating new ScCondFormatDlgData since it always seemed to overwrite the already set one, resp. set a 2nd one using DirectPutItemInPool -> the next access to it using GetItemSurrogates(*, SCITEM_CONDFORMATDLGDATA) would always have accessed the old, never the newly added one. Debugging old version shows that there might be !pDlgItem and thus no already existing ScCondFormatDlgData, then setting in these cases is needed. We now have one place for one ScCondFormatDlgData in the View (see get/setScCondFormatDlgItem()). Thus in ScCellShell::ExecuteEdit at SID_OPENDLG_CONDFRMT_MANAGER/SID_OPENDLG_CURRENTCONDFRMT_MANAGER I remove now early, not after dlg running (anyways unclear with dlg being async). That needs the const std::shared_ptr<ScCondFormatDlgData>& rDlgItem to move to a non-reference aDlgItem to hold and ensure it's existence. Also reconstructing needed actions for DLG_RET_ADD and DLG_RET_EDIT. Securing more places to not early-delete ScCondFormatDlgData from the View. With that done I no longer get the same DLG after change (which is this error). Due to not knowing too much about this stuff I suppose to put in gerrit and ask involved people to check functionality -> I need someone who can tell if still something is broken... -- You are receiving this mail because: You are the assignee for the bug.
