From 1284ce613caf882cc5fac14736a08b3aacc01180 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Fri, 5 Dec 2014 14:33:06 +0000 Subject: [PATCH] support pdf double click --- .../public/coffee/ide/pdfng/directives/pdfJs.coffee | 10 +++------- .../coffee/ide/pdfng/directives/pdfPage.coffee | 13 +++++++++++++ .../coffee/ide/pdfng/directives/pdfRenderer.coffee | 2 +- .../coffee/ide/pdfng/directives/pdfTextLayer.coffee | 6 ++++++ .../coffee/ide/pdfng/directives/pdfViewer.coffee | 1 - 5 files changed, 23 insertions(+), 9 deletions(-) diff --git a/services/web/public/coffee/ide/pdfng/directives/pdfJs.coffee b/services/web/public/coffee/ide/pdfng/directives/pdfJs.coffee index 3db6825739..656b80f5f3 100644 --- a/services/web/public/coffee/ide/pdfng/directives/pdfJs.coffee +++ b/services/web/public/coffee/ide/pdfng/directives/pdfJs.coffee @@ -64,12 +64,8 @@ define [ scope.flashControls = false , 1000 -# element.find(".pdfjs-viewer").scroll () -> -# scope.position = pdfListView.getPdfPosition(true) - - onDoubleClick = (e) -> - console.log 'double click event' - scope.dblClickCallback?(page: e.page, offset: { top: e.y, left: e.x }) + scope.$on 'pdfDoubleClick', (event, e) -> + scope.dblClickCallback?(page: e.page - 1, offset: { top: e.y, left: e.x }) scope.$watch "pdfSrc", (url) -> if url @@ -146,7 +142,7 @@ define [ #console.log 'got a resize event', event, e template: """ -
+
+ offset = $(element).find('.pdf-canvas').offset() + dx = e.pageX - offset.left + dy = e.pageY - offset.top + scope.document.getPdfViewport(scope.page.pageNum).then (viewport) -> + pdfPoint = viewport.convertToPdfPoint(dx, dy); + event = { + page: scope.page.pageNum + x: pdfPoint[0], + y: viewport.viewBox[3] - pdfPoint[1] + } + scope.$emit 'pdfDoubleClick', event + highlightsLayer = new pdfHighlights({ highlights: highlightsElement }) diff --git a/services/web/public/coffee/ide/pdfng/directives/pdfRenderer.coffee b/services/web/public/coffee/ide/pdfng/directives/pdfRenderer.coffee index 0cdb80a0e2..05aa9f043e 100644 --- a/services/web/public/coffee/ide/pdfng/directives/pdfRenderer.coffee +++ b/services/web/public/coffee/ide/pdfng/directives/pdfRenderer.coffee @@ -116,7 +116,7 @@ define [ # console.log 'scale is undefined, returning' return - canvas = $('') + canvas = $('') viewport = page.getViewport (scale) diff --git a/services/web/public/coffee/ide/pdfng/directives/pdfTextLayer.coffee b/services/web/public/coffee/ide/pdfng/directives/pdfTextLayer.coffee index 2dc7bab9da..3ad9ec6b5e 100644 --- a/services/web/public/coffee/ide/pdfng/directives/pdfTextLayer.coffee +++ b/services/web/public/coffee/ide/pdfng/directives/pdfTextLayer.coffee @@ -182,6 +182,12 @@ define [ textDiv.style.fontFamily = style.fontFamily textDiv.textContent = geom.str + textDiv.ondblclick = (e) -> + if (window.getSelection) + window.getSelection().removeAllRanges(); + else if (document.selection) + document.selection.empty(); + # |fontName| is only used by the Font Inspector. This test will succeed # when e.g. the Font Inspector is off but the Stepper is on, but it's # not worth the effort to do a more accurate test. diff --git a/services/web/public/coffee/ide/pdfng/directives/pdfViewer.coffee b/services/web/public/coffee/ide/pdfng/directives/pdfViewer.coffee index 26678f17df..01ef6e16b4 100644 --- a/services/web/public/coffee/ide/pdfng/directives/pdfViewer.coffee +++ b/services/web/public/coffee/ide/pdfng/directives/pdfViewer.coffee @@ -206,7 +206,6 @@ define [ "highlights": "=" "position": "=" "scale": "=" - "dblClickCallback": "=" "pleaseJumpTo": "=" } template: """