-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document editor screen jumping full fix #4850
Draft
toad
wants to merge
5
commits into
ONLYOFFICE:master
Choose a base branch
from
toad:document-editor-screen-jumping-full-fix
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Document editor screen jumping full fix #4850
toad
wants to merge
5
commits into
ONLYOFFICE:master
from
toad:document-editor-screen-jumping-full-fix
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1 task
c36094c
to
95844f6
Compare
95844f6
to
259baf3
Compare
amovsisyan's patch looks for an anchor to save the position relative to. Which works fine as long as there are anchors on every page. Unfortunately with tables this often is not the case. If GetDocumentPositionByXY() returns an anchor on a previous, invisible page, try moving down the current page 10 pixels at a time until we find an anchor on this page. This is similar to what the code above does. If that does not work either, we need to reference an anchor on a previous page. Use ConvertCoordsToAnotherPage() to do this correctly.
259baf3
to
13d5b75
Compare
When we get an update, we set ViewPosition. This will in theory be used to position the next rendered frame via CheckTargetUpdate(). However it can be some time before CheckViewPosition() actually gets as far as scrolling to the saved position, because of recalculations. So we need to check whether there has been any scrolling since we saved ViewPosition. This adds an additional bit of state, savedTopOffset, which is the top cursor position of the top page at the time of generating ViewPosition. Probably it should be on one of the State/ViewPosition Anchor values.
Store it in the correct state object rather than as a property directly on the Document. This is more consistent and should avoid any bugs with e.g. state saving on undo.
89a1d77
to
e4d61d0
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This fixes the jumping bug for me (bug 3054: ONLYOFFICE/DocumentServer#3054 ) and is an extension on #4848 .
Note that this includes the patch from @amovsisyan. You will need them to sign the CLA as well as me. Unfortunately they changed the email address they commit with.