diff --git a/base b/base index be04eb049..a6e112a5e 160000 --- a/base +++ b/base @@ -1 +1 @@ -Subproject commit be04eb049dae438cf3347a52de7828fbb181123f +Subproject commit a6e112a5ee06e6939203accbd0736134af8939cd diff --git a/frontend/document/pdfdocument.lua b/frontend/document/pdfdocument.lua index aba0ad3a6..6da284748 100644 --- a/frontend/document/pdfdocument.lua +++ b/frontend/document/pdfdocument.lua @@ -211,18 +211,18 @@ local function _quadpointsFromPboxes(pboxes) -- will also need mupdf_h.lua to be evaluated once -- but this is guaranteed at this point local n = #pboxes - local quadpoints = ffi.new("float[?]", 8*n) + local quadpoints = ffi.new("fz_quad[?]", n) for i=1, n do -- The order must be left bottom, right bottom, left top, right top. -- https://bugs.ghostscript.com/show_bug.cgi?id=695130 - quadpoints[8*i-8] = pboxes[i].x - quadpoints[8*i-7] = pboxes[i].y + pboxes[i].h - quadpoints[8*i-6] = pboxes[i].x + pboxes[i].w - quadpoints[8*i-5] = pboxes[i].y + pboxes[i].h - quadpoints[8*i-4] = pboxes[i].x - quadpoints[8*i-3] = pboxes[i].y - quadpoints[8*i-2] = pboxes[i].x + pboxes[i].w - quadpoints[8*i-1] = pboxes[i].y + quadpoints[i-1].ll.x = pboxes[i].x + quadpoints[i-1].ll.y = pboxes[i].y + pboxes[i].h - 1 + quadpoints[i-1].lr.x = pboxes[i].x + pboxes[i].w - 1 + quadpoints[i-1].lr.y = pboxes[i].y + pboxes[i].h - 1 + quadpoints[i-1].ul.x = pboxes[i].x + quadpoints[i-1].ul.y = pboxes[i].y + quadpoints[i-1].ur.x = pboxes[i].x + pboxes[i].w - 1 + quadpoints[i-1].ur.y = pboxes[i].y end return quadpoints, n end @@ -232,10 +232,10 @@ local function _quadpointsToPboxes(quadpoints, n) local pboxes = {} for i=1, n do table.insert(pboxes, { - x = quadpoints[8*i-4], - y = quadpoints[8*i-3], - w = quadpoints[8*i-6] - quadpoints[8*i-4], - h = quadpoints[8*i-5] - quadpoints[8*i-3], + x = quadpoints[i-1].ul.x, + y = quadpoints[i-1].ul.y, + w = quadpoints[i-1].lr.x - quadpoints[i-1].ul.x + 1, + h = quadpoints[i-1].lr.y - quadpoints[i-1].ul.y + 1, }) end return pboxes diff --git a/spec/unit/koptinterface_spec.lua b/spec/unit/koptinterface_spec.lua index 9099d6fcd..81579b831 100644 --- a/spec/unit/koptinterface_spec.lua +++ b/spec/unit/koptinterface_spec.lua @@ -127,7 +127,7 @@ describe("Koptinterface module", function() local word_boxes = Koptinterface:getWordFromPosition(complex_doc, { page = 19, x = 320, y = 730, }) - assert.is.same("of", word_boxes.word) + assert.is.same("time,", word_boxes.word) end) it("should get link from native position", function()