office-gobmx/test
Caolán McNamara 7edfb1b85c calc doc with saved zoom in settings causes disjoint invalidations...
in multiple views, while the invalidations rectangles should be reported
at the same place from each view.

on load, ScTabView::SetZoom gets called with the zoom stored in the
document settings, which both calls sets Zoom on the ViewData, and then
calls ZoomChanged, which syncs the GridWindows MapMode from the ViewData
derived GetDrawMapMode().

Later lok sets zoom via setClientArea which leaves the GridWindows
MapMode untouched and out of sync with the newly changed ViewData
MapMode.

Typically then, on e.g. on deleting text in one view then
ScViewFunc::DeleteContents or similar is called which calls
ScTabView::UpdateCopySourceOverlay which calls
ScGridWindow::UpdateCopySourceOverlay and that sets the GridWindow
MapMode to the DrawMapMode but then *for lokit* returns early (among a
few other unlikely early return cases) while every other similar func
restores the orig GridWindow mode before returning. So the view which
is used to make the change ends up with GridWindows synced to the
ViewData MapMode, which looks like accident. While the other view
remains with GridWindows with MapModes unsynced with that views
ViewData MapMode.

So on invalidate, the view that was used to make the change has
GridWindows with MapModes that report the correct rectangle, while the
other unsynced view will report an incorrect rectangle, until something
happens in that view to get it to exec UpdateCopySourceOverlay and get
synced.

Here add the sync to ScModelObj::setClientZoom so the two MapModes
remain synced once that is called.

Change-Id: I2da59f50ae2b0e3ea6b7ef8b54debdab1ee98266
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162312
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162322
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-20 12:45:13 +01:00
..
qa/cppunit Extended loplugin:ostr: test 2023-11-19 17:29:33 +01:00
signing-keys
source calc doc with saved zoom in settings causes disjoint invalidations... 2024-01-20 12:45:13 +01:00
user-template Verify that zh-Hant-TW locale works in configmgr as intended 2023-02-17 18:56:56 +00:00
CppunitTest_test_a11y.mk test: Add accessibility test dialog infrastructure 2023-02-24 15:13:39 +00:00
CppunitTest_test_xpath.mk
IwyuFilter_test.yaml
Library_subsequenttest.mk tdf#45904: Move _Footnote Java tests to C++ 2023-08-27 10:51:38 +02:00
Library_test.mk calc doc with saved zoom in settings causes disjoint invalidations... 2024-01-20 12:45:13 +01:00
Library_test_setupvcl.mk
Library_vclbootstrapprotector.mk
Makefile
Module_test.mk test: Add accessibility test dialog infrastructure 2023-02-24 15:13:39 +00:00
Package_unittest.mk
README.md
README.vars

Test Harness Code for C++ Unit Testing

Many of these tests are run during the build process. In that case on unix, if a test fails follow the error messages to debug it under gdb.