@@ -56,48 +56,33 @@
56 56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
document.querySelector('body > div.mainmenu'),
57 57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
document.querySelector('body > #hbdrop'),
58 58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
document.querySelector('body > div.footer')
59 59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
];
60 60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
f.contentArea = E1('div.content');
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.extra = 0;
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.measure = function callee(e,depth){
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!e) return;
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const m = e.getBoundingClientRect();
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- //console.debug("level-"+depth+" rect",e.className,m.top,m.bottom);
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0===depth){
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- callee.top = m.top;
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- callee.bottom = m.bottom;
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- callee.top = m.top ? Math.min(callee.top, m.top) : callee.top;
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- callee.bottom = Math.max(callee.bottom, m.bottom);
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Array.prototype.forEach.call(e.children,(e)=>callee(e,depth+1));
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0===depth){
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- //console.debug("measure() height:",e.className, callee.top, callee.bottom, (callee.bottom - callee.top));
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.extra += callee.bottom - callee.top;
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
79 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
80 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const bcl = document.body.classList;
81 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const resized = function(){
82 64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const wh = window.innerHeight,
83 65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
com = bcl.contains('chat-only-mode');
84 66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var ht;
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var extra = 0;
85 68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(com){
86 69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ht = wh;
87 70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.extra = 0;
89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.elemsToCount.forEach((e)=>e ? f.measure(e,0) : false);
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ht = wh - f.extra;
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ f.elemsToCount.forEach((e)=>e ? extra += D.effectiveHeight(e) : false);
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ht = wh - extra;
91 73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
92 74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
f.contentArea.style.height =
93 75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
f.contentArea.style.maxHeight = [
94 76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"calc(", (ht>=100 ? ht : 100), "px",
95 77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" - 1em"/*fudge value*/,")"
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* ^^^^ hypothetically not needed, but both Chrome/FF on
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Linux will force scrollbars on the body if this value is
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ too small (<0.75em in my tests). */
96 81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
].join('');
97 82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(false){
98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- console.debug("resized.",wh, f.extra, ht,
83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ console.debug("resized.",wh, extra, ht,
99 84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
window.getComputedStyle(f.contentArea).maxHeight,
100 85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
f.contentArea);
101 86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
102 87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
103 88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var doit;
@@ -244,11 +229,11 @@
244 229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.e.newestMessage = e;
245 230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
246 231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!atEnd && !this.isBatchLoading
247 232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& e.dataset.xfrom!==this.me
248 233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& (prevMessage
249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ? !overlapsElemView(prevMessage, this.e.messagesWrapper)
234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ? !this.messageIsInView(prevMessage)
250 235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
: false)){
251 236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If a new non-history message arrives while the user is
252 237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
scrolled elsewhere, do not scroll to the latest
253 238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
message, but gently alert the user that a new message
254 239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
has arrived. */
@@ -341,10 +326,13 @@
341 326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const e = [this.e.btnMsgHome, this.e.btnMsgEnd], c = 'hidden';
342 327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(0===arguments.length) D.toggleClass(e, c);
343 328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else if(!arguments[0]) D.addClass(e, c);
344 329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else D.removeClass(e, c);
345 330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
},
331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ messageIsInView: function(e){
332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return e ? overlapsElemView(e, this.e.messagesWrapper) : false;
333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
346 334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
settings:{
347 335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
get: (k,dflt)=>F.storage.get(k,dflt),
348 336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
getBool: (k,dflt)=>F.storage.getBool(k,dflt),
349 337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set: (k,v)=>F.storage.set(k,v),
350 338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defaults:{
351 339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!