Apache OpenOffice (AOO) Bugzilla – Issue 120201
No Undo for Table Cell property edits
Last modified: 2017-05-20 10:35:14 UTC
build info:OOo-dev3.4.1-r1354891 Steps: 1.launch OO and new a presentation 2.insert a table:5 rows,5 columns 3.select the table and right click mouse to enable "Table..." and set table property borders: line arrangement:set outer border and all innner lines line style:2.5 pt color:black background: Fill:color,as red click"OK" 4."Ctrl+Z" to undo all settings defect: undo id not ok,can't undo set table border.
(a) Still Reproducible with server installation of "AOO 4.1.0-Beta – German UI / German locale - [AOO410m14(Build:9760) - Rev. 1573601 2014-03-03 17:47:48]" on German WIN7 Home Premium (64bit)", own separate user profile. (b) Same in Draw, If you apply any table property like borders, color, ..., the edit will not be added to the undo stack. (c) Same still with LibO 4.2 (d) Was still ok with OOo 3.3.0, OOo 3.1.1
The undo action (CellUndo) already remembers and resets the settings (move the table to see it relayouting), but executing the undo does not trigger the needed TableLayouter::UpdateBorderLayout(). This seems necessary to get the SvxBorderLine settings recreated in the layouter from the restored items. Currently ActionChanged() is called which repaints the stuff which is normally sufficient. The repaint will create the highest Primitive in it's VOC and that is compared with the last one. Unfortunately that creation will re-use the not yet updated stuff from the TableLayouter. This shows that it is not waterproof that all changes to the table reset the TableLayouter, sigh. Checking if using ReformatText will do it (it should since it calls AdjustTextFrameWidthAndHeight on its way)...
Works as expected, preparing commit...
Okay, done.
"alg" committed SVN revision 1581891 into trunk: i120201 added forcing TableLayouter to take action in table undo/redo (CellUndo)