@@ -180,10 +180,62 @@
180 180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
181 181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( opt.hiddenFields ){
182 182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.addHiddenFields( opt.hiddenFields );
183 183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
delete opt.hiddenFields;
184 184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { /* Shift-enter pieces... */
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const eCb = D.checkbox(1);
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const eLbl = D.label();
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const eHelp = D.append(
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.addClass(D.span(), "help-buttonlet"), [
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'When checked, shift-enter will toggle between preview ',
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'and edit modes. This is generally useful but some ',
193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'software keyboards misinteract with it. If the preview ',
194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'starts when you tap Enter, turn this setting off.'
195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ].join('')
196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ eCb.checked = F.storage.getBool('edit-shift-enter-preview', true);
198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ eCb.addEventListener('change', (ev)=>{
199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.storage.set('edit-shift-enter-preview', eCb.checked);
200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.helpButtonlets.setup(eHelp);
202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ eLbl.append("Shift-enter toggles preview?", eCb, eHelp);
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ e.buttons.append(eLbl);
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const isShiftEnter = (ev)=>eCb.checked && ev.shiftKey && 13===ev.keyCode;
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ e.editor.addEventListener('keydown',(ev)=>{
206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /**
207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ If eCb.checked is true, a keyboard combo of shift-enter
208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (from the editor) toggles between preview and edit modes.
209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ This is normally desired but at least one software
210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ keyboard is known to misinteract with this, treating an
211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Enter after automatically-capitalized letters as a
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ shift-enter:
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ https://fossil-scm.org/forum/forumpost/dbd5b68366147ce8
215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!isShiftEnter(ev)) return;
217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ev.preventDefault();
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ev.stopPropagation();
219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ e.editor.blur(/*force change event, if needed*/);
220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#tabs.switchToTab(e.preview);
221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#preview();
222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }, false);
223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // If we're in the preview tab, have ctrl-enter switch back to the editor.
224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ document.body.addEventListener('keydown',(ev)=>{
225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!isShiftEnter(ev)) return;
226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ console.warn("this.#activeTab =",this.#activeTab);
227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(this.#activeTab !== e.tabEdit){
228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ev.preventDefault();
229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ev.stopPropagation();
230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#tabs.switchToTab(e.tabEdit);
231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ e.editor.focus(/*slow as molasses for long docs, as focus()
232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ forces a document reflow. */);
233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return false;
234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }, true);
236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }/*shift-enter preview bits*/
185 237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
186 238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}/*constructor*/
187 239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
188 240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/** This widget's top-most DOM element. */
189 241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
get widget(){
190 242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!