Merge pull request #2719 from Elv13/make_next_to_pos_optional

placement: Handle when the preferred position choice isn't set.
This commit is contained in:
mergify[bot] 2019-03-06 18:45:05 +00:00 committed by GitHub
commit 05b4735911
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 2 deletions

View File

@ -1484,7 +1484,11 @@ function placement.next_to(d, args)
does_fit[pos.name] = fit and {geo, dir} or nil
if fit and preferred_positions[pos.name] and preferred_positions[pos.name] < pref_idx then
-- preferred_positions is optional
local better_pos_idx = preferred_positions[pos.name]
and preferred_positions[pos.name] < pref_idx or false
if fit and (better_pos_idx or not pref_name) then
pref_idx = preferred_positions[pos.name]
pref_name = pos.name
end
@ -1493,7 +1497,11 @@ function placement.next_to(d, args)
if fit then break end
end
local ngeo, dir = unpack(does_fit[pref_name] or {}) --FIXME why does this happen
if not pref_name then return end
assert(does_fit[pref_name])
local ngeo, dir = unpack(does_fit[pref_name])
-- The requested placement isn't possible due to the lack of space, better
-- do nothing an try random things