diff --git a/druid/base/static_grid.lua b/druid/base/static_grid.lua index a4b663d..c2be36f 100644 --- a/druid/base/static_grid.lua +++ b/druid/base/static_grid.lua @@ -151,11 +151,13 @@ function StaticGrid:add(item, index) gui.set_parent(item, self.parent) - local pos = self:get_pos(index) - -- Add new item instantly in new pos - gui.set_position(item, pos) + -- Add new item instantly in new pos. Break update function for correct positioning + self:_update_indexes() + self:_update_borders() - self:_update() + gui.set_position(item, self:get_pos(index) + self:get_zero_offset()) + + self:_update_pos() self.on_add_item:trigger(self:get_context(), item, index) self.on_change_items:trigger(self:get_context(), index) diff --git a/example/page/grid_page.lua b/example/page/grid_page.lua index cd7c16d..35a8509 100644 --- a/example/page/grid_page.lua +++ b/example/page/grid_page.lua @@ -67,7 +67,9 @@ local function init_static_grid(self) add_node(self, i) end - self.druid:new_button("button_add/button", add_node) + self.druid:new_button("button_add/button", function() + add_node(self) + end) self.druid:new_button("button_clear/button", clear_nodes) local remove_button = self.druid:new_button("button_remove/button", remove_node)