Set FullRelayoutNeeded after GetNaturalSize/GetHeightForWidth to avoid the backup... 55/264455/8
authorShrouq Sabah <s.sabah@samsung.com>
Mon, 20 Sep 2021 11:17:14 +0000 (14:17 +0300)
committerssabah <s.sabah@samsung.com>
Tue, 7 Dec 2021 07:40:26 +0000 (09:40 +0200)
commit1faec7a15fc94a07f69c90ef6707f590b2ff7072
tree022b5976f3c7541185c83374ce3f9c2cc34e4616
parentc4636249c15bf97b972dadf60a0070aae531ed5e
Set FullRelayoutNeeded after GetNaturalSize/GetHeightForWidth to avoid the backup/restore of fields in visual-model.

This solved some issues happen after calling GetNaturalSize/GetHeightForWidth or after initialization when set WIDTH_RESIZE_POLICY to ResizePolicy::USE_NATURAL_SIZE

1) Fixing the issue where characters were being drawn at the same location whenever GetNaturalSize was called.
https://review.tizen.org/gerrit/c/platform/core/uifw/dali-toolkit/+/253286
2) Side effect on Scrolling, LineWrap and Invalid position of cursor in TextEditor after calling GetNaturalSize or GetHeightForWidth.
https://review.tizen.org/gerrit/c/platform/core/uifw/dali-toolkit/+/255379
3) Crash issue when set WIDTH_RESIZE_POLICY to ResizePolicy::USE_NATURAL_SIZE in TextEditor then insert/remove characters from 2nd line in it after initialization
4) Crash issue when set WIDTH_RESIZE_POLICY to ResizePolicy::USE_NATURAL_SIZE in TextEditor and select_text at initialization then cut it after initialization
5) Crash issue when set WIDTH_RESIZE_POLICY to ResizePolicy::USE_NATURAL_SIZE in TextEditor then double enter in it after initialization
6) Incorrect NaturalSize after the second call for GetNaturalSize. This issue in TextLabel when call GetNaturalSize, then set MULTI_LINE, then re-call GetNaturalSize with Text has break-line

Change-Id: Ieea984f41a218c62e016baa60156b51e985f2fc0
automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp
dali-toolkit/internal/text/text-controller-impl.cpp
dali-toolkit/internal/text/text-controller-relayouter.cpp
dali-toolkit/internal/text/text-controller-relayouter.h
dali-toolkit/internal/text/text-controller.cpp