diff --git a/graphics/element.lua b/graphics/element.lua index 7bc8de5..2ace4e1 100644 --- a/graphics/element.lua +++ b/graphics/element.lua @@ -775,11 +775,14 @@ function element.new(args, child_offset_x, child_offset_y) -- hide the element and disables animations
-- this alone does not cause an element to be fully hidden, it only prevents updates from being shown
+ ---@see graphics_element.redraw ---@see graphics_element.content_redraw - function public.hide() + ---@param clear? boolean true to visibly hide this element (redraws the parent) + function public.hide(clear) public.freeze_all() -- stop animations for efficiency/performance public.unfocus_all() protected.window.setVisible(false) + if clear and args.parent then args.parent.redraw() end end -- start/resume animation(s) @@ -803,8 +806,14 @@ function element.new(args, child_offset_x, child_offset_y) for _, child in pairs(protected.children) do child.get().freeze_all() end end - -- re-draw the element - function public.redraw() protected.window.redraw() end + -- re-draw this element and all its children + function public.redraw() + protected.window.setBackgroundColor(protected.fg_bg.bkg) + protected.window.setTextColor(protected.fg_bg.fgd) + protected.window.clear() + protected.redraw() + for _, child in pairs(protected.children) do child.get().redraw() end + end -- if a content window is set, clears it then re-draws all children function public.content_redraw()