fix: selection_strategies row and follow (#218)
This commit is contained in:
@@ -53,7 +53,7 @@ function EntryManager:new(max_results, set_entry, info)
|
|||||||
local existing_entry = v.entry
|
local existing_entry = v.entry
|
||||||
|
|
||||||
-- FIXME: This has the problem of assuming that display will not be the same for two different entries.
|
-- FIXME: This has the problem of assuming that display will not be the same for two different entries.
|
||||||
if existing_entry.display == entry.display then
|
if existing_entry == entry then
|
||||||
return k
|
return k
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -110,7 +110,7 @@ function EntryManager:insert(picker, index, entry)
|
|||||||
-- and then shift all the corresponding items one place.
|
-- and then shift all the corresponding items one place.
|
||||||
local next_entry, last_score
|
local next_entry, last_score
|
||||||
repeat
|
repeat
|
||||||
self.info.inserted = self.info.inserted + 1
|
self.info.inserted = self.info.inserted + 1
|
||||||
next_entry = self.entry_state[index]
|
next_entry = self.entry_state[index]
|
||||||
|
|
||||||
self.set_entry(picker, index, entry.entry, entry.score)
|
self.set_entry(picker, index, entry.entry, entry.score)
|
||||||
|
|||||||
@@ -683,8 +683,14 @@ function Picker:set_selection(row)
|
|||||||
row = self:_handle_scroll_strategy(row)
|
row = self:_handle_scroll_strategy(row)
|
||||||
|
|
||||||
if not self:can_select_row(row) then
|
if not self:can_select_row(row) then
|
||||||
log.debug("Cannot select row:", row, self.manager:num_results(), self.max_results)
|
-- If the current selected row exceeds number of currently displayed
|
||||||
return
|
-- elements we have to reset it. Affectes sorting_strategy = 'row'.
|
||||||
|
if not self:can_select_row(self:get_selection_row()) then
|
||||||
|
row = self:get_row(self.manager:num_results())
|
||||||
|
else
|
||||||
|
log.debug("Cannot select row:", row, self.manager:num_results(), self.max_results)
|
||||||
|
return
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- local entry = self.manager:get_entry(self.max_results - row + 1)
|
-- local entry = self.manager:get_entry(self.max_results - row + 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user