Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Integrated a debouncer into the window-resize monitor callbacks used by the diff table views and /chat to eliminate a flurry of UI resizing while resizing a window, per suggestion from Florian in forum post 7807e0dbcca1dc45. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
df0e2ca16877a093f0b9d707d48db241 |
User & Date: | stephan 2021-10-10 14:07:26 |
Context
2021-10-10
| ||
15:44 | /chat: grouped config settings into categories. Moved config checkboxes back to the left, per /chat feedback, but now clicking anywhere on their row toggles them. Slightly shrunk the main buttons when in non-compact mode. Various look-and-feel and help text tweaks to the config view. ... (check-in: 67e85998 user: stephan tags: trunk) | |
14:07 | Integrated a debouncer into the window-resize monitor callbacks used by the diff table views and /chat to eliminate a flurry of UI resizing while resizing a window, per suggestion from Florian in forum post 7807e0dbcca1dc45. ... (check-in: df0e2ca1 user: stephan tags: trunk) | |
06:33 | Reworked /chat input options for better cross-browser portability. Made /chat config friendlier for right-handed and mobile use. ... (check-in: db54f4b7 user: stephan tags: trunk) | |
Changes
Changes to src/fossil.bootstrap.js.
︙ | ︙ | |||
287 288 289 290 291 292 293 294 | */ F.page.setPageTitle = function(title){ const t = document.querySelector('title'); if(t) t.innerText = title; return this; }; })(window); | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 | */ F.page.setPageTitle = function(title){ const t = document.querySelector('title'); if(t) t.innerText = title; return this; }; /** Returns a function, that, as long as it continues to be invoked, will not be triggered. The function will be called after it stops being called for N milliseconds. If `immediate` is passed, call the callback immediately and hinder future invocations until at least the given time has passed. If passed only 1 argument, or passed a falsy 2nd argument, the default wait time set in this function's $defaultDelay property is used. Source: underscore.js, by way of https://davidwalsh.name/javascript-debounce-function */ F.debounce = function f(func, wait, immediate) { var timeout; if(!wait) wait = f.$defaultDelay; return function() { const context = this, args = Array.prototype.slice.call(arguments); const later = function() { timeout = undefined; if(!immediate) func.apply(context, args); }; const callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if(callNow) func.apply(context, args); }; }; F.debounce.$defaultDelay = 500 /*arbitrary*/; })(window); |
Changes to src/fossil.diff.js.
︙ | ︙ | |||
735 736 737 738 739 740 741 | return this; } window.fossil.page.tweakSbsDiffs = function(){ document.querySelectorAll('table.splitdiff').forEach((e)=>Diff.initTableDiff(e)); Diff.checkTableWidth(); }; Diff.initTableDiff().checkTableWidth(); | | | 735 736 737 738 739 740 741 742 743 | return this; } window.fossil.page.tweakSbsDiffs = function(){ document.querySelectorAll('table.splitdiff').forEach((e)=>Diff.initTableDiff(e)); Diff.checkTableWidth(); }; Diff.initTableDiff().checkTableWidth(); window.addEventListener('resize', F.debounce(()=>Diff.checkTableWidth())); }, false); |
Changes to src/fossil.page.chat.js.
︙ | ︙ | |||
111 112 113 114 115 116 117 | console.debug("resized.",wh, extra, ht, window.getComputedStyle(contentArea).maxHeight, contentArea); console.debug("Set input max height to: ", f.chat.e.inputX.style.maxHeight); } }; | | | < < < < | 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | console.debug("resized.",wh, extra, ht, window.getComputedStyle(contentArea).maxHeight, contentArea); console.debug("Set input max height to: ", f.chat.e.inputX.style.maxHeight); } }; resized.$disabled = true/*gets deleted when setup is finished*/; window.addEventListener('resize', F.debounce(resized, 250), false); return resized; })(); fossil.FRK = ForceResizeKludge/*for debugging*/; const Chat = ForceResizeKludge.chat = (function(){ const cs = { verboseErrors: false /* if true then certain, mostly extraneous, error messages may be sent to the console. */, e:{/*map of certain DOM elements.*/ messageInjectPoint: E1('#message-inject-point'), |
︙ | ︙ |