History

Settings: disable autofocus of search input

Fixes #1856.

Simon Legner committed 4 years ago

Commit 7e0dacb1 parent d7155c54 files · +12 −3Browse files

Unified · Split

4 files
  1. assets/javascripts/app/settings.coffee +1 −0
  2. assets/javascripts/templates/pages/settings_tmpl.coffee +3 −0
  3. assets/javascripts/views/content/settings_page.coffee +1 −0
  4. assets/javascripts/views/search/search.coffee +7 −3
assets/javascripts/app/settings.coffee+1−0
@@ -12,6 +12,7 @@ class app.Settings · 11 unmodified lines
1212 'layout'
1313 'size'
1414 'tips'
15+ 'noAutofocus'
1516 'autoInstall'
1617 'spaceScroll'
1718 'spaceTimeout'
assets/javascripts/templates/pages/settings_tmpl.coffee+3−0
@@ -34,6 +34,9 @@ app.templates.settingsPage = (settings) -> """ · 33 unmodified lines
3434 <input type="checkbox" form="settings" name="layout" value="_sidebar-hidden"#{if settings['_sidebar-hidden'] then ' checked' else ''}>Automatically hide and show the sidebar
3535 <small>Tip: drag the edge of the sidebar to resize it.</small>
3636 </label>
37+ <label class="_settings-label _hide-on-mobile">
38+ <input type="checkbox" form="settings" name="noAutofocus" value="_no-autofocus"#{if settings.noAutofocus then ' checked' else ''}>Disable autofocus of search input
39+ </label>
3740 <label class="_settings-label">
3841 <input type="checkbox" form="settings" name="autoInstall" value="_auto-install"#{if settings.autoInstall then ' checked' else ''}>Automatically download documentation for offline use
3942 <small>Only enable this when bandwidth isn't a concern to you.</small>
assets/javascripts/views/content/settings_page.coffee+1−0
@@ -14,6 +14,7 @@ class app.views.SettingsPage extends app.View · 13 unmodified lines
1414 settings.theme = app.settings.get('theme')
1515 settings.smoothScroll = !app.settings.get('fastScroll')
1616 settings.arrowScroll = app.settings.get('arrowScroll')
17+ settings.noAutofocus = app.settings.get('noAutofocus')
1718 settings.autoInstall = app.settings.get('autoInstall')
1819 settings.analyticsConsent = app.settings.get('analyticsConsent')
1920 settings.spaceScroll = app.settings.get('spaceScroll')
assets/javascripts/views/search/search.coffee+7−3
@@ -39,12 +39,16 @@ class app.views.Search extends app.View · 38 unmodified lines
3939 return
4040
4141 focus: =>
42− @input.focus() unless document.activeElement is @input
42+ return if document.activeElement is @input
43+ return if app.settings.get('noAutofocus')
44+ @input.focus()
4345 return
4446
4547 autoFocus: =>
46− unless app.isMobile() or $.isAndroid() or $.isIOS()
47− @input.focus() unless document.activeElement?.tagName is 'INPUT'
48+ return if app.isMobile() or $.isAndroid() or $.isIOS()
49+ return if document.activeElement?.tagName is 'INPUT'
50+ return if app.settings.get('noAutofocus')
51+ @input.focus()
4852 return
4953
5054 onWindowFocus: (event) =>