aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/pdf/PDFViewer.tsx
diff options
context:
space:
mode:
authorbob <bcz@cs.brown.edu>2019-09-26 14:37:49 -0400
committerbob <bcz@cs.brown.edu>2019-09-26 14:37:49 -0400
commit288a3a1368ab7de11007080e54cd1879196342a4 (patch)
treebfc6d1d5466a13b95797297286159f5827479360 /src/client/views/pdf/PDFViewer.tsx
parent0c0b5697957af3c1aa4560a707d37b1073b743a5 (diff)
hopefully last fixes for pdf interactions -- this time for marquee dragging with right button.
Diffstat (limited to 'src/client/views/pdf/PDFViewer.tsx')
-rw-r--r--src/client/views/pdf/PDFViewer.tsx15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/client/views/pdf/PDFViewer.tsx b/src/client/views/pdf/PDFViewer.tsx
index 427da1d9b..9ef311c86 100644
--- a/src/client/views/pdf/PDFViewer.tsx
+++ b/src/client/views/pdf/PDFViewer.tsx
@@ -69,7 +69,7 @@ export class PDFViewer extends React.Component<IViewerProps> {
public pdfViewer: any;
private _isChildActive = false;
- private _setPreviewCursor: undefined | ((x: number, y: number) => void);
+ private _setPreviewCursor: undefined | ((x: number, y: number, drag: boolean) => void);
private _annotationLayer: React.RefObject<HTMLDivElement> = React.createRef();
private _reactionDisposer?: IReactionDisposer;
private _annotationReactionDisposer?: IReactionDisposer;
@@ -355,7 +355,12 @@ export class PDFViewer extends React.Component<IViewerProps> {
@action
onPointerDown = (e: React.PointerEvent): void => {
// if alt+left click, drag and annotate
+ this._downX = e.clientX;
+ this._downY = e.clientY;
if (NumCast(this.props.Document.scale, 1) !== 1) return;
+ if (e.button !== 0 && this.active()) {
+ this._setPreviewCursor && this._setPreviewCursor(e.clientX, e.clientY, true);
+ }
this._marqueeing = false;
if (!e.altKey && e.button === 0 && this.active()) {
PDFMenu.Instance.StartDrag = this.startDrag;
@@ -370,8 +375,6 @@ export class PDFViewer extends React.Component<IViewerProps> {
}
}
else {
- this._downX = e.clientX;
- this._downY = e.clientY;
// set marquee x and y positions to the spatially transformed position
if (this._mainCont.current) {
let boundingRect = this._mainCont.current.getBoundingClientRect();
@@ -564,15 +567,15 @@ export class PDFViewer extends React.Component<IViewerProps> {
scrollXf = () => {
return this._mainCont.current ? this.props.ScreenToLocalTransform().translate(0, this._mainCont.current.scrollTop) : this.props.ScreenToLocalTransform();
}
- setPreviewCursor = (func?: (x: number, y: number) => void) => {
+ setPreviewCursor = (func?: (x: number, y: number, drag: boolean) => void) => {
this._setPreviewCursor = func;
}
onClick = (e: React.MouseEvent) => {
this._setPreviewCursor &&
- this._marqueeing &&
+ e.button === 0 &&
Math.abs(e.clientX - this._downX) < 3 &&
Math.abs(e.clientY - this._downY) < 3 &&
- this._setPreviewCursor(e.clientX, e.clientY);
+ this._setPreviewCursor(e.clientX, e.clientY, false);
}
whenActiveChanged = (isActive: boolean) => {
this._isChildActive = isActive;