mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
make browser resizing smoother / less expensive
This commit is contained in:
parent
f5407b2997
commit
18aa82fb2f
|
@ -2038,8 +2038,7 @@ var pbar = (function () {
|
|||
t_redraw = setTimeout(r.drawpos, sm > 50 ? 20 : 50);
|
||||
};
|
||||
|
||||
window.addEventListener('resize', r.onresize);
|
||||
r.onresize();
|
||||
onresize100.add(r.onresize, true);
|
||||
return r;
|
||||
})();
|
||||
|
||||
|
@ -2101,8 +2100,7 @@ var vbar = (function () {
|
|||
clearTimeout(untext);
|
||||
untext = setTimeout(r.draw, 1000);
|
||||
};
|
||||
window.addEventListener('resize', r.onresize);
|
||||
r.onresize();
|
||||
onresize100.add(r.onresize, true);
|
||||
|
||||
var rect;
|
||||
function mousedown(e) {
|
||||
|
@ -5183,6 +5181,7 @@ document.onkeydown = function (e) {
|
|||
}
|
||||
})();
|
||||
|
||||
|
||||
function aligngriditems() {
|
||||
if (!treectl)
|
||||
return;
|
||||
|
@ -5205,7 +5204,8 @@ function aligngriditems() {
|
|||
ebi('ggrid').style.justifyContent = treectl.hidden ? 'center' : 'space-between';
|
||||
}
|
||||
}
|
||||
window.addEventListener('resize', aligngriditems);
|
||||
onresize100.add(aligngriditems);
|
||||
|
||||
|
||||
var treectl = (function () {
|
||||
var r = {
|
||||
|
|
|
@ -2630,8 +2630,7 @@ function up2k_init(subtle) {
|
|||
}
|
||||
}
|
||||
}
|
||||
window.addEventListener('resize', onresize);
|
||||
onresize();
|
||||
onresize100.add(onresize, true);
|
||||
|
||||
if (MOBILE) {
|
||||
// android-chrome wobbles for a bit; firefox / iOS-safari are OK
|
||||
|
|
|
@ -1051,6 +1051,67 @@ function cliptxt(txt, ok) {
|
|||
}
|
||||
|
||||
|
||||
function Debounce(delay) {
|
||||
var r = this;
|
||||
r.delay = delay;
|
||||
r.timer = 0;
|
||||
r.t_hit = 0;
|
||||
r.t_run = 0;
|
||||
r.q = [];
|
||||
|
||||
r.add = function (fun, run) {
|
||||
r.rm(fun);
|
||||
r.q.push(fun);
|
||||
|
||||
if (run)
|
||||
fun();
|
||||
};
|
||||
|
||||
r.rm = function (fun) {
|
||||
apop(r.q, fun);
|
||||
};
|
||||
|
||||
r.run = function () {
|
||||
if (crashed)
|
||||
return;
|
||||
|
||||
r.t_run = Date.now();
|
||||
|
||||
var q = r.q.slice(0);
|
||||
for (var a = 0; a < q.length; a++)
|
||||
q[a]();
|
||||
};
|
||||
|
||||
r.hit = function () {
|
||||
if (crashed)
|
||||
return;
|
||||
|
||||
var now = Date.now(),
|
||||
td_hit = now - r.t_hit,
|
||||
td_run = now - r.t_run;
|
||||
|
||||
if (td_run >= r.delay * 2)
|
||||
r.t_run = now;
|
||||
|
||||
if (td_run >= r.delay && td_run <= r.delay * 2) {
|
||||
// r.delay is also deadline
|
||||
clearTimeout(r.timer);
|
||||
return r.run();
|
||||
}
|
||||
|
||||
if (td_hit < r.delay / 5)
|
||||
return;
|
||||
|
||||
clearTimeout(r.timer);
|
||||
r.timer = setTimeout(r.doit, r.delay);
|
||||
r.t_hit = now;
|
||||
};
|
||||
};
|
||||
|
||||
var onresize100 = new Debounce(100);
|
||||
window.addEventListener('resize', onresize100.hit);
|
||||
|
||||
|
||||
var timer = (function () {
|
||||
var r = {};
|
||||
r.q = [];
|
||||
|
|
Loading…
Reference in a new issue