1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2025-12-13 02:55:55 +00:00

- RIP smooth scrolling and associated hacks

- attempt to make Headlines.move() / Article.cdmMoveToId() behave a bit more intuitively
This commit is contained in:
Andrew Dolgov
2020-05-22 21:48:03 +03:00
parent c8cc845d5b
commit 409ba0db2d
15 changed files with 59 additions and 141 deletions

View File

@@ -8,29 +8,17 @@ define(["dojo/_base/declare"], function (declare) {
hotkey_prefix_pressed: false,
hotkey_prefix_timeout: 0,
Scrollable: {
scrollByPages: function (elem, page_offset, event) {
scrollByPages: function (elem, page_offset) {
if (!elem) return;
/* keep a line or so from the previous page */
const offset = (elem.offsetHeight - (page_offset > 0 ? 50 : -50)) * page_offset;
this.scroll(elem, offset, event);
this.scroll(elem, offset);
},
scroll: function(elem, offset, event) {
scroll: function(elem, offset) {
if (!elem) return;
if (event && event.repeat) {
elem.addClassName("forbid-smooth-scroll");
window.clearTimeout(this._scroll_reset_timeout);
this._scroll_reset_timeout = window.setTimeout(() => {
if (elem) elem.removeClassName("forbid-smooth-scroll");
}, 250)
} else {
elem.removeClassName("forbid-smooth-scroll");
}
elem.scrollTop += offset;
},
isChildVisible: function(elem, ctr) {
@@ -45,6 +33,12 @@ define(["dojo/_base/declare"], function (declare) {
return etop >= ctop && ebottom <= cbottom ||
etop < ctop && ebottom > ctop || ebottom > cbottom && etop < cbottom;
},
fitsInContainer: function (elem, ctr) {
if (!elem) return;
return elem.offsetTop + elem.offsetHeight <= ctr.scrollTop + ctr.offsetHeight &&
elem.offsetTop >= ctr.scrollTop;
}
},
constructor: function() {
window.onerror = this.Error.onWindowError;