diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2022-09-10 17:37:19 +0200 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2022-09-10 17:38:33 +0200 |
commit | 632ac992ab4a032a3415b99a419c0c88c22157e5 (patch) | |
tree | 3ded5c5a26320d1f460d64946150d77b44479478 /xP | |
parent | d29e2cbfe82197319ab66ace6837bd3c1763dbad (diff) | |
download | xK-632ac992ab4a032a3415b99a419c0c88c22157e5.tar.gz xK-632ac992ab4a032a3415b99a419c0c88c22157e5.tar.xz xK-632ac992ab4a032a3415b99a419c0c88c22157e5.zip |
xC/xP: only send buffer stats in the initial sync
The client and frontends track these separately,
there is no need for hard synchronization.
Diffstat (limited to 'xP')
-rw-r--r-- | xP/public/xP.js | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/xP/public/xP.js b/xP/public/xP.js index 8820b69..7f64473 100644 --- a/xP/public/xP.js +++ b/xP/public/xP.js @@ -136,6 +136,12 @@ let bufferCurrent = undefined let bufferLog = undefined let bufferAutoscroll = true +function resetBufferStats(b) { + b.newMessages = 0 + b.newUnimportantMessages = 0 + b.highlighted = false +} + let connecting = true rpc.connect().then(result => { buffers.clear() @@ -162,15 +168,21 @@ rpc.addEventListener('Ping', event => { rpc.addEventListener('BufferUpdate', event => { let e = event.detail, b = buffers.get(e.bufferName) if (b === undefined) { - buffers.set(e.bufferName, { - lines: [], - newMessages: e.newMessages, - newUnimportantMessages: e.newUnimportantMessages, - highlighted: e.highlighted, - }) + buffers.set(e.bufferName, (b = {lines: []})) + resetBufferStats(b) } }) +rpc.addEventListener('BufferStats', event => { + let e = event.detail, b = buffers.get(e.bufferName) + if (b === undefined) + return + + b.newMessages = e.newMessages, + b.newUnimportantMessages = e.newUnimportantMessages + b.highlighted = e.highlighted +}) + rpc.addEventListener('BufferRename', event => { let e = event.detail buffers.set(e.new, buffers.get(e.bufferName)) @@ -184,11 +196,8 @@ rpc.addEventListener('BufferRemove', event => { rpc.addEventListener('BufferActivate', event => { let old = buffers.get(bufferCurrent) - if (old !== undefined) { - old.newMessages = 0 - old.newUnimportantMessages = 0 - old.highlighted = false - } + if (old !== undefined) + resetBufferStats(old) let e = event.detail, b = buffers.get(e.bufferName) bufferCurrent = e.bufferName |