From adf5ffdd26a06b27afd2b03ab59cd8ee3f1980e0 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sun, 5 Jun 2016 00:08:23 -0700 Subject: [PATCH] dictquicklookup(fix): use self.region for matching hold event --- frontend/ui/widget/dictquicklookup.lua | 9 ++++++--- spec/unit/textboxwidget_spec.lua | 25 +++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 spec/unit/textboxwidget_spec.lua diff --git a/frontend/ui/widget/dictquicklookup.lua b/frontend/ui/widget/dictquicklookup.lua index 0a66bb0db..57009c3e8 100644 --- a/frontend/ui/widget/dictquicklookup.lua +++ b/frontend/ui/widget/dictquicklookup.lua @@ -81,12 +81,14 @@ function DictQuickLookup:init() HoldWord = { GestureRange:new{ ges = "hold", - range = function() return self.dimen end, + range = function() + return self.region + end, }, -- callback function when HoldWord is handled as args args = function(word) - self.ui:handleEvent(Event:new("LookupWord", - word, self.word_box)) + self.ui:handleEvent( + Event:new("LookupWord", word, self.word_box)) end }, } @@ -293,6 +295,7 @@ function DictQuickLookup:onShow() end function DictQuickLookup:getHighlightedItem() + if not self.ui then return end return self.ui.highlight:getHighlightBookmarkItem() end diff --git a/spec/unit/textboxwidget_spec.lua b/spec/unit/textboxwidget_spec.lua new file mode 100644 index 000000000..d403ef979 --- /dev/null +++ b/spec/unit/textboxwidget_spec.lua @@ -0,0 +1,25 @@ +describe("TextBoxWidget module", function() + local TextBoxWidget, Font + setup(function() + require("commonrequire") + Font = require("ui/font") + TextBoxWidget = require("ui/widget/textboxwidget") + end) + + it("should select the correct word on HoldWord event", function() + local tw = TextBoxWidget:new{ + dimen = {x = 0, y = 0}, + face = Font:getFace("cfont", 25), + text = 'YOOOOOOOOOOOOOOOO\nFoo.\nBar.', + } + tw:onHoldWord(function(w) + assert.is.same(w, 'YOOOOOOOOOOOOOOOO') + end, {pos={x=110,y=4}}) + tw:onHoldWord(function(w) + assert.is.same(w, 'Foo') + end, {pos={x=0,y=50}}) + tw:onHoldWord(function(w) + assert.is.same(w, 'Bar') + end, {pos={x=20,y=80}}) + end) +end)