From 29d89c5e8a3bc273b26f60233cfed884baa6d97b Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage Vallee Date: Mon, 4 Mar 2019 15:19:16 -0500 Subject: [PATCH] placement: Handle when the preferred position isn't set. This removes a FIXME from the code. --- lib/awful/placement.lua | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/awful/placement.lua b/lib/awful/placement.lua index cc77d7ce4..73f49360b 100644 --- a/lib/awful/placement.lua +++ b/lib/awful/placement.lua @@ -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