mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 06:03:45 +01:00
avoid getting duplicate handlers for mouseup
This commit is contained in:
@@ -417,16 +417,28 @@ define [
|
||||
# grey background area or the scrollbars.
|
||||
if e.target != element[0] and !_hasSelection()
|
||||
element.addClass 'pdfjs-viewer-show-text'
|
||||
$(document.body).one 'mouseup', _handleSelectionMouseUp
|
||||
_setMouseUpHandler()
|
||||
|
||||
mouseUpHandler = null # keep track of the handler to avoid adding multiple times
|
||||
|
||||
_setMouseUpHandler = () ->
|
||||
if not mouseUpHandler?
|
||||
mouseUpHandler = $(document.body).one 'mouseup', _handleSelectionMouseUp
|
||||
|
||||
_handleSelectionMouseUp = () ->
|
||||
window.setTimeout _removeClassIfNoSelection, 10
|
||||
mouseUpHandler = null # reset handler, has now fired
|
||||
window.setTimeout () ->
|
||||
removedClass = _removeClassIfNoSelection()
|
||||
# if we still have a selection we need to keep the handler going
|
||||
if not removedClass then _setMouseUpHandler()
|
||||
, 10
|
||||
|
||||
_removeClassIfNoSelection = () ->
|
||||
if _hasSelection()
|
||||
$(document.body).one 'mouseup', _handleSelectionMouseUp
|
||||
return false # didn't remove the text layer
|
||||
else
|
||||
element.removeClass 'pdfjs-viewer-show-text'
|
||||
return true
|
||||
|
||||
_hasSelection = () ->
|
||||
selection = window.getSelection()
|
||||
|
||||
Reference in New Issue
Block a user