Limit new event listener to Chrome for Android

pull/941/head
Jasper van Merle 6 years ago
parent 504f95e4f4
commit c6f0f1693f

@ -352,6 +352,10 @@ isIE = null
$.isIE = ->
isIE ?= navigator.userAgent?.indexOf('MSIE') >= 0 || navigator.userAgent?.indexOf('rv:11.0') >= 0
isChromeForAndroid = null
$.isChromeForAndroid = ->
isChromeForAndroid ?= navigator.userAgent?.indexOf('Android') >= 0 && /Chrome\/([.0-9])+ Mobile/.test(navigator.userAgent)
isAndroid = null
$.isAndroid = ->
isAndroid ?= navigator.userAgent?.indexOf('Android') >= 0

@ -88,23 +88,27 @@ class app.views.SearchScope extends app.View
@trigger 'change', null, previousDoc
return
doScopeSearch: (event) =>
@search @input.value[0...@input.selectionStart]
$.stopEvent(event) if @doc
return
onKeydown: (event) =>
if event.which is 8 # backspace
if @doc and not @input.value
$.stopEvent(event)
@reset()
else if not @doc and @input.value
else if not @doc and @input.value and not $.isChromeForAndroid()
return if event.ctrlKey or event.metaKey or event.altKey or event.shiftKey
if event.which is 9 or # tab
(event.which is 32 and app.isMobile()) # space
@search @input.value[0...@input.selectionStart]
$.stopEvent(event) if @doc
@doScopeSearch(event)
return
onTextInput: (event) =>
if event.data == ' ' and app.isMobile()
@search @input.value[0...@input.selectionStart]
$.stopEvent(event) if @doc
return unless $.isChromeForAndroid()
if not @doc and @input.value and event.data == ' '
@doScopeSearch(event)
return
extractHashValue: ->

Loading…
Cancel
Save