fix: Spreadsheet - do not hide rows/columns for nonexistent freeze pane splits #8158
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Spreadsheet does not handle freeze panes correctly. In this case,
SpreadsheetFactory.loadFreezePane(Spreadsheet)
does not check ifpaneInformation.getVerticalSplitPosition()
orpaneInformation.getHorizontalSplitPosition()
returns 0 before attempting to hide columns according to the saved scroll state.By adding a check for a correct return value from paneInformation, this change fixes a situation where a document with a freeze pane that was scrolled before being saved would load incorrectly, resulting in the user being unable to scroll to the beginning of the document, and the rendering being corrupted.
Unfortunately, Spreadsheet does not provide a sane API for restoring the original scroll position, which is something that both MS Excel and LibreOffice Calc do. Adding this functionality is out-of-scope for this PR.
Fixes #8136.
Type of change
Checklist
Additional for
Feature
type of change