diff --git a/game/engines/default/engine/dialogs/ShowEquipInven.lua b/game/engines/default/engine/dialogs/ShowEquipInven.lua index 17c10a558f751636f95649d49cc5fd1ee9b6de82..cd37651390a264152f40b585e655a6fc3a67d392 100644 --- a/game/engines/default/engine/dialogs/ShowEquipInven.lua +++ b/game/engines/default/engine/dialogs/ShowEquipInven.lua @@ -145,6 +145,12 @@ function _M:select(item) self.cur_item = item end +function _M:on_focus(id, ui) + if self.focus_ui and self.focus_ui.ui == self.c_inven then self:select(self.c_inven.list[self.c_inven.sel]) + elseif self.focus_ui and self.focus_ui.ui == self.c_equip then self:select(self.c_equip.list[self.c_equip.sel]) + end +end + function _M:use(item, button, event) if item then if self.action(item.object, item.inven, item.item, button, event) then diff --git a/game/engines/default/engine/dialogs/ShowStore.lua b/game/engines/default/engine/dialogs/ShowStore.lua index b74897ab05dd1633fec2e9650b93d68f1ba579c2..62785e259988d8a896e31ef1fffe0ffd4de9bdb8 100644 --- a/game/engines/default/engine/dialogs/ShowStore.lua +++ b/game/engines/default/engine/dialogs/ShowStore.lua @@ -92,6 +92,12 @@ function _M:select(item) self.cur_item = item end +function _M:on_focus(id, ui) + if self.focus_ui and self.focus_ui.ui == self.c_inven then self:select(self.c_inven.list[self.c_inven.sel]) + elseif self.focus_ui and self.focus_ui.ui == self.c_store then self:select(self.c_store.list[self.c_store.sel]) + end +end + function _M:use(item) if item and item.object then if self.focus_ui and self.focus_ui.ui == self.c_store then diff --git a/game/engines/default/engine/ui/Dialog.lua b/game/engines/default/engine/ui/Dialog.lua index 715d46986821eab5bf3ec72816ac29a21d74506f..7e87627992a8e6abab924362d25511ec1a6b7ab7 100644 --- a/game/engines/default/engine/ui/Dialog.lua +++ b/game/engines/default/engine/ui/Dialog.lua @@ -401,6 +401,7 @@ function _M:moveFocus(v) while start ~= id and cnt <= #self.uis do if self.uis[id].ui.can_focus then self:setFocus(id) + self:on_focus(id, self.uis[id].ui) break end id = util.boundWrap(id + v, 1, #self.uis) @@ -408,6 +409,9 @@ function _M:moveFocus(v) end end +function _M:on_focus(id, ui) +end + function _M:mouseEvent(button, x, y, xrel, yrel, bx, by, event) -- Look for focus for i = 1, #self.uis do