• Robert Knight's avatar
    Improve logic for scrolling sidebar to annotation with a given ID (#3360) · 66a5da9a
    Robert Knight authored
    The previous logic contained several errors and omissions which could
    result in the card not appearing at the top of the viewport after
    scrolling.
    
     1. If the set of visible threads changed multiple times before the timeout
        that triggered re-measuring of visible thread heights changed, then
        a measured height could be replaced with 0.
    
        Add checks to catch this.
    
     2. Account for the target scroll offset changing as a result of
        the document height increasing after the actual heights of
        cards become known and consequently the maximum possible
        scroll offset changes.
    
     3. Correct calculation of the position that we need to scroll the
        window to in order to have a card positioned at the top
        of the window. For the first card in the list, the position
        should be 0 (as returned by visibleThreads.yOffsetOf(...)),
        and for the Nth card it should be the total height of the N-1
        previous cards.
    66a5da9a
Name
Last commit
Last update
..
annotator Loading commit data...
directive Loading commit data...
filter Loading commit data...
test Loading commit data...
util Loading commit data...
vendor Loading commit data...
admin-site.js Loading commit data...
admin-users.js Loading commit data...
annotation-mapper.js Loading commit data...
annotation-metadata.js Loading commit data...
annotation-sync.coffee Loading commit data...
annotation-ui-controller.js Loading commit data...
annotation-ui-sync.js Loading commit data...
annotation-ui.js Loading commit data...
annotation-viewer-controller.js Loading commit data...
app-controller.js Loading commit data...
app.js Loading commit data...
auth.js Loading commit data...
bridge.coffee Loading commit data...
build-thread.js Loading commit data...
create-group-form.js Loading commit data...
cross-frame.coffee Loading commit data...
date-util.js Loading commit data...
discovery.coffee Loading commit data...
drafts.js Loading commit data...
dropdown-menu.js Loading commit data...
events.js Loading commit data...
features.js Loading commit data...
flash.coffee Loading commit data...
form-respond.coffee Loading commit data...
form-select-onfocus-controller.js Loading commit data...
frame-rpc.js Loading commit data...
groups.js Loading commit data...
host.coffee Loading commit data...
installer-controller.js Loading commit data...
karma-phantomjs-polyfill.js Loading commit data...
karma.config.js Loading commit data...
legacy-site.js Loading commit data...
live-reload-client.js Loading commit data...
local-storage.coffee Loading commit data...
markdown-commands.js Loading commit data...
media-embedder.js Loading commit data...
page.js Loading commit data...
permissions.coffee Loading commit data...
polyfills.js Loading commit data...
query-parser.coffee Loading commit data...
raven.js Loading commit data...
render-markdown.js Loading commit data...
retry-util.js Loading commit data...
root-thread.js Loading commit data...
search-client.js Loading commit data...
search-filter.coffee Loading commit data...
session.js Loading commit data...
settings.js Loading commit data...
site.js Loading commit data...
store.js Loading commit data...
stream-controller.coffee Loading commit data...
stream-filter.coffee Loading commit data...
streamer.js Loading commit data...
tags.coffee Loading commit data...
time.js Loading commit data...
tsconfig.json Loading commit data...
ua-detect.js Loading commit data...
unicode.coffee Loading commit data...
view-filter.coffee Loading commit data...
virtual-thread-list.js Loading commit data...
websocket.js Loading commit data...
widget-controller.js Loading commit data...