SortWidget: Toggle checked status when tapping on checkmark

In a checkable SortWidget a tap on a checkmark now toggles the checkmark,
instead of selecting the corresponding item.
reviewable/pr6755/r1
georgeto 4 years ago committed by Frans de Jonge
parent f31bd736f7
commit b668791c9c

@ -120,7 +120,7 @@ function SortItemWidget:init()
item_checkable = true item_checkable = true
item_checked = self.item.checked_func() item_checked = self.item.checked_func()
end end
local checkmark_widget = CheckMark:new{ self.checkmark_widget = CheckMark:new{
checkable = item_checkable, checkable = item_checkable,
checked = item_checked, checked = item_checked,
} }
@ -138,7 +138,7 @@ function SortItemWidget:init()
align = "center", align = "center",
CenterContainer:new{ CenterContainer:new{
dimen = Geom:new{ w = checked_widget:getSize().w }, dimen = Geom:new{ w = checked_widget:getSize().w },
checkmark_widget, self.checkmark_widget,
}, },
TextWidget:new{ TextWidget:new{
text = self.item.text, text = self.item.text,
@ -150,8 +150,12 @@ function SortItemWidget:init()
self[1].invert = self.invert self[1].invert = self.invert
end end
function SortItemWidget:onTap() function SortItemWidget:onTap(_, ges)
if self.show_parent.marked == self.index then 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 self.show_parent.marked = 0
else else
self.show_parent.marked = self.index self.show_parent.marked = self.index

Loading…
Cancel
Save