office-gobmx/include
Miklos Vajna cafc53f8b4 tdf#99452 svx: fix undo of table row edge drag
The problem as seen by the user: if you have a table of 2 rows and 1 column,
and the separator line is dragged upwards by the mouse, then undo doesn't
restore the original situation.

Two items are created on the undo stack: sd::UndoGeoObject and
sdr::table::TableRowUndo. Let's say the table height is 8000 mm100 and the two
cell heights are 4000 and 4000. If the user resizes the first cell, so that its
height is 2000, then the new table height will be 6000. The problem is that
when undo is executed, first sd::UndoGeoObject resizes the table, distributing
the newly available 2000 between the existing rows, and then
sdr::table::TableRowUndo sets the row height of the first row: the height of
the second cell will be larger than expected. Fix the problem by not doing a
relayout during sd::UndoGeoObject, but doing a relayout after
sdr::table::TableRowUndo in this case.

This is done by:

1) Adding a new SdrDragStat::mbEndDragChangesLayout, so that
SdrTableObj::applySpecialDrag() can inform SdrDragObjOwn::EndSdrDrag() that
TableRowUndo will do the layout instead of UndoGeoObject. (This is done only in
case a row edge is dragged, as otherwise it's not guaranteed that a
TableRowUndo will follow the UndoGeoObject on the undo stack.)

2) Adding a new SdrUndoGeoObj::mbSkipChangeLayout, so that
SdrTableObj::applySpecialDrag() can let SdrUndoGeoObj::Undo() not do the
layout.

3) Adding a sdr::table::SdrTableObjImpl::mbSkipChangeLayout, so that
SdrUndoGeoObj::Undo() can let SdrTableObj::NbcSetLogicRect() not do the layout.

4) Marking the table model as modified in TableRowUndo::setData(), so it does
the layout at the end of the undo group.

Change-Id: I8adde3cdad5741e6fcb420e333ce336e18c77cf1
Reviewed-on: https://gerrit.libreoffice.org/24363
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2016-04-25 09:52:54 +00:00
..
animations
apple_remote
avmedia
basegfx loplugin:passstuffbyref in basegfx 2016-04-13 13:27:50 +02:00
basic loplugin:passstuffbyref in basic 2016-04-13 13:27:51 +02:00
canvas loplugin:salbool: Automatic rewrite of sal_False/True 2016-04-20 17:25:36 +02:00
codemaker loplugin:passstuffbyref in codemaker 2016-04-13 13:27:51 +02:00
com/sun/star/uno Use cast to bool to normalize sal_Bool values 2016-04-20 17:25:31 +02:00
comphelper Kill comphelper::MakeMap 2016-04-25 06:11:27 +00:00
connectivity loplugin:passstuffbyref in connectivity 2016-04-13 13:27:51 +02:00
cppcanvas cleanup: remove unused Reference.h(xx) includes 2016-04-02 19:01:24 +00:00
cppu
cppuhelper loplugin:salbool: Automatic rewrite of sal_False/True 2016-04-20 17:25:38 +02:00
cppunittester
dbaccess loplugin:passstuffbyref in dbaccess 2016-04-13 13:27:51 +02:00
desktop
drawinglayer tdf#99315 VclPixelProcessor2D: fix double border line width 2016-04-18 19:06:39 +00:00
editeng loplugin:passstuffbyref in editeng 2016-04-13 13:27:52 +02:00
filter loplugin:passstuffbyref in filter 2016-04-13 13:27:52 +02:00
formula use FormulaToken::DeleteIfZeroRef() instead of Delete() at some places 2016-04-23 17:28:27 +02:00
framework sequence->vector in framework 2016-04-01 07:33:45 +00:00
helpcompiler
i18nlangtag explicitly map 'C' locale and other known definitions to LanguageTag 2016-04-20 19:18:52 +02:00
i18nutil
jvmaccess loplugin:passstuffbyref in jvmaccess 2016-04-13 13:27:52 +02:00
jvmfwk
LibreOfficeKit lok: getPartHash should be at the end, it is a new API call. 2016-04-21 19:10:02 +02:00
linguistic sequence->vector in linguistic 2016-04-01 07:33:32 +00:00
o3tl
oox tdf#42949: clean up includes in include/oox/core using iwyu 2016-04-25 08:51:32 +00:00
opencl cleanup: remove unused com/sun/star/uno includes 2016-04-12 06:38:26 +00:00
osl Skip intermediate _LITTLE/BIG_ENDIAN when determining OSL_LIT/BIGENDIAN 2016-04-12 21:30:53 +00:00
package
registry
rsc
rtl loplugin:nullptr: Find some more cases in templates 2016-03-30 18:59:54 +02:00
sal loplugin:sallogareas 2016-04-14 14:34:20 +02:00
salhelper
sax loplugin:passstuffbyref in sax 2016-04-13 13:27:52 +02:00
sfx2 new plugin stylepolice 2016-04-21 08:32:47 +02:00
shell
sot loplugin:constantparam in sot 2016-04-04 14:02:28 +00:00
store
svl loplugin:passstuffbyref in svl 2016-04-13 13:27:52 +02:00
svtools loplugin:passstuffbyref in svtools 2016-04-13 13:27:53 +02:00
svx tdf#99452 svx: fix undo of table row edge drag 2016-04-25 09:52:54 +00:00
systools/win32
test
toolkit loplugin:passstuffbyref in toolkit 2016-04-14 09:21:39 +02:00
tools use std::vector<> instead of embedding next pointers for ErrorHandler data 2016-04-25 09:13:35 +02:00
touch
tubes
typelib
ucbhelper loplugin:passstuffbyref in ucbhelper 2016-04-14 09:21:39 +02:00
uno Fix typos 2016-04-22 06:47:06 +00:00
unoidl loplugin:passstuffbyref in unoidl 2016-04-14 09:21:39 +02:00
unotest loplugin:passstuffbyref in unotest 2016-04-14 09:21:39 +02:00
unotools tdf#81833: form protection can be modified as compatibility option 2016-04-22 13:18:40 +00:00
vbahelper Avoid reserved identifier 2016-04-22 10:20:32 +02:00
vcl GDIMetaFile: rename members missing their prefixes 2016-04-25 08:25:27 +00:00
wntgcci
wntgccx
xmloff loplugin:passstuffbyref in xmloff 2016-04-14 09:21:39 +02:00
xmlreader
xmlscript cleanup: remove unused com/sun/star/uno includes 2016-04-12 06:38:26 +00:00
default.rc
postmac.h
postwin.h
premac.h
prewin.h
version.hrc