Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Reverted [33610b04de8fdf56] because a subtle bug in Chrome and FF causes both browsers to break scrolling of elements if they are descendants, however deeply nested, of a fieldset element. The one known workaround for that is too fragile. This is not release-critical. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | post-2.12-fixes |
Files: | files | file ages | folders |
SHA3-256: |
e5c3ffeb36dd2927fb2d808ae6ba780f |
User & Date: | stephan 2020-08-16 10:05:42 |
Context
2020-08-16
| ||
13:33 | Fix scrolling bug in FF and Chrome. ... (check-in: 22f2d083 user: drh tags: trunk) | |
10:05 | Reverted [33610b04de8fdf56] because a subtle bug in Chrome and FF causes both browsers to break scrolling of elements if they are descendants, however deeply nested, of a fieldset element. The one known workaround for that is too fragile. This is not release-critical. ... (Closed-Leaf check-in: e5c3ffeb user: stephan tags: post-2.12-fixes) | |
2020-08-14
| ||
18:54 | Consolidated the common styles of the bottom- and right-side forum post expansion toggles and resolved a layout quirk which could cause the right-side expander to sit too far to the left. ... (check-in: db1afa75 user: stephan tags: trunk) | |
Changes
Changes to src/default.css.
︙ | ︙ | |||
992 993 994 995 996 997 998 | margin: 0; display: flex; flex-direction: column; border-width: 1px; border-style: outset; border-color: inherit; } | | < < < < < < < < < < | 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 | margin: 0; display: flex; flex-direction: column; border-width: 1px; border-style: outset; border-color: inherit; } .tab-container > .tabs > .tab-panel { align-self: stretch; flex: 10 1 auto; display: block; border: 0; padding: 0; margin: 0; } |
︙ | ︙ |
Changes to src/fossil.tabs.js.
︙ | ︙ | |||
28 29 30 31 32 33 34 | */ TabManager.defaultOptions = { tabAccessKeys: true }; /** Internal helper to normalize a method argument to a tab | | | > < < < < < | < < < < < < < < | < < | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | */ TabManager.defaultOptions = { tabAccessKeys: true }; /** Internal helper to normalize a method argument to a tab element. arg may be a tab DOM element, a selector string, or an index into tabMgr.e.tabs.childNodes. Returns the corresponding tab element. */ const tabArg = function(arg,tabMgr){ if('string'===typeof arg) arg = E(arg); else if(tabMgr && 'number'===typeof arg && arg>=0){ arg = tabMgr.e.tabs.childNodes[arg]; } return arg; }; /** Sets sets the visibility of tab element e to on or off. e MUST be a TabManager tab element. */ const setVisible = function(e,yes){ D[yes ? 'removeClass' : 'addClass'](e, 'hidden'); }; TabManager.prototype = { /** Initializes the tabs associated with the given tab container (DOM element or selector for a single element). This must be called once before using any other member functions of a given |
︙ | ︙ | |||
162 163 164 165 166 167 168 | if(!f.click){ f.click = function(e){ e.target.$manager.switchToTab(e.target.$tab); }; } tab = tabArg(tab); tab.remove(); | < < | | 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | if(!f.click){ f.click = function(e){ e.target.$manager.switchToTab(e.target.$tab); }; } tab = tabArg(tab); tab.remove(); D.append(this.e.tabs, D.addClass(tab,'tab-panel')); const tabCount = this.e.tabBar.childNodes.length+1; const lbl = tab.dataset.tabLabel || 'Tab #'+tabCount; const btn = D.addClass(D.append(D.span(), lbl), 'tab-button'); D.append(this.e.tabBar,btn); btn.$manager = this; btn.$tab = tab; if(this.options.tabAccessKeys){ |
︙ | ︙ | |||
236 237 238 239 240 241 242 | if(tab===this._currentTab) return this; else if(this._currentTab){ this._dispatchEvent('before-switch-from', this._currentTab); } delete this._currentTab; this.e.tabs.childNodes.forEach((e,ndx)=>{ const btn = this.e.tabBar.childNodes[ndx]; | < | 220 221 222 223 224 225 226 227 228 229 230 231 232 233 | if(tab===this._currentTab) return this; else if(this._currentTab){ this._dispatchEvent('before-switch-from', this._currentTab); } delete this._currentTab; this.e.tabs.childNodes.forEach((e,ndx)=>{ const btn = this.e.tabBar.childNodes[ndx]; if(e===tab){ if(D.hasClass(e,'selected')){ return; } self._dispatchEvent('before-switch-to',tab); setVisible(e, true); this._currentTab = e; |
︙ | ︙ |