diff --git a/frontend/ui/widget/sortwidget.lua b/frontend/ui/widget/sortwidget.lua index ec0b995ee..9f6947f98 100644 --- a/frontend/ui/widget/sortwidget.lua +++ b/frontend/ui/widget/sortwidget.lua @@ -120,7 +120,7 @@ function SortItemWidget:init() item_checkable = true item_checked = self.item.checked_func() end - local checkmark_widget = CheckMark:new{ + self.checkmark_widget = CheckMark:new{ checkable = item_checkable, checked = item_checked, } @@ -138,7 +138,7 @@ function SortItemWidget:init() align = "center", CenterContainer:new{ dimen = Geom:new{ w = checked_widget:getSize().w }, - checkmark_widget, + self.checkmark_widget, }, TextWidget:new{ text = self.item.text, @@ -150,8 +150,12 @@ function SortItemWidget:init() self[1].invert = self.invert end -function SortItemWidget:onTap() - if self.show_parent.marked == self.index then +function SortItemWidget:onTap(_, ges) + if self.item.checked_func and ges.pos:intersectWith(self.checkmark_widget.dimen) then + if self.item.callback then + self.item:callback() + end + elseif self.show_parent.marked == self.index then self.show_parent.marked = 0 else self.show_parent.marked = self.index