Q: How do I make the viewer scroll when dragging text or adding annotations out of the view, just like the default browser behavior when selecting text?
var scrollView = $('#DocumentViewer')[0];
var sidePanel = $('#sidePanel');
var notesPanel = $('#notesPanelWrapper');
var shiftPage = function(e) {
var leftShift = readerControl.sidePanelVisible() ? sidePanel.width() : 0;
var rightShift = notesPanel.css('display') === 'none' ? 0 : notesPanel.width();
if (e.pageX < leftShift + 10) {
scrollView.scrollLeft -= 10;
} else if (e.pageX > window.innerWidth - rightShift - 10) {
scrollView.scrollLeft += 10;
}
};
var mouseLeftDown = function(originalMouseLeftDown) {
return function() {
originalMouseLeftDown.apply(this, arguments);
this.mouseDown = true;
}
};
var mouseMove = function(originalMouseMove) {
return function(e) {
originalMouseMove.apply(this, arguments);
if (this.mouseDown) {
shiftPage(e);
}
}
};
var mouseLeftUp = function(originalMouseLeftUp) {
return function() {
if (this.annotation) {
readerControl.docViewer.getAnnotationManager().redrawAnnotation(this.annotation);
}
originalMouseLeftUp.apply(this, arguments);
this.mouseDown = false;
}
};
var textToolMouseLeftDown = Tools.TextTool.prototype.mouseLeftDown;
Tools.TextTool.prototype.mouseLeftDown = mouseLeftDown(textToolMouseLeftDown);
var textToolMouseMove = Tools.TextTool.prototype.mouseMove;
Tools.TextTool.prototype.mouseMove = mouseMove(textToolMouseMove);
var textToolMouseLeftUp = Tools.TextTool.prototype.mouseLeftUp;
Tools.TextTool.prototype.mouseLeftUp = mouseLeftUp(textToolMouseLeftUp);
var genericAnnotationMouseLeftDown = Tools.GenericAnnotationCreateTool.prototype.mouseLeftDown;
Tools.GenericAnnotationCreateTool.prototype.mouseLeftDown = mouseLeftDown(genericAnnotationMouseLeftDown);;
var genericAnnotationMouseMove = Tools.GenericAnnotationCreateTool.prototype.mouseMove;
Tools.GenericAnnotationCreateTool.prototype.mouseMove = mouseMove(genericAnnotationMouseMove);
var genericAnnotationMouseLeftUp = Tools.GenericAnnotationCreateTool.prototype.mouseLeftUp;
Tools.GenericAnnotationCreateTool.prototype.mouseLeftUp = mouseLeftUp(genericAnnotationMouseLeftUp);