From 5518161adf9cc050bcd97899ade43a934c3d1b95 Mon Sep 17 00:00:00 2001 From: MayaTheShy Date: Sun, 22 Mar 2026 19:04:20 -0400 Subject: [PATCH] fix: call enable() on pages after attaching to device Opus Canvas only renders children with enabled=true. Without calling page:enable(), all widgets were skipped during render, resulting in a blank black monitor. --- manager/display.lua | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/manager/display.lua b/manager/display.lua index 46268d2..50209cb 100644 --- a/manager/display.lua +++ b/manager/display.lua @@ -450,6 +450,7 @@ local function buildMainPage() mainDevice.currentPage = mainPage mainPage.parent = mainDevice mainPage:setParent() + mainPage:enable() end function D.updateAmountButtons() @@ -886,6 +887,7 @@ local function buildSmelterPage() smelterDevice.currentPage = smelterPage smelterPage.parent = smelterDevice smelterPage:setParent() + smelterPage:enable() end ------------------------------------------------- @@ -1015,12 +1017,7 @@ end function D.drawDashboard() if not mainPage then if mainDevice then - log.info("DRAW", "Building main page (device=%s, side=%s)", - tostring(mainDevice), tostring(mainDevice and mainDevice.device and mainDevice.device.side or "nil")) buildMainPage() - log.info("DRAW", "Main page built: %s", tostring(mainPage ~= nil)) - else - log.warn("DRAW", "No mainDevice — skipping dashboard") end if not mainPage then return end end @@ -1042,21 +1039,6 @@ function D.drawDashboard() -- Draw everything mainPage:draw() mainDevice:sync() - - -- Debug: verify monitor is writable - if D._drawCount == nil then D._drawCount = 0 end - D._drawCount = D._drawCount + 1 - if D._drawCount <= 3 then - log.info("DRAW", "sync complete (draw #%d, lines=%d, w=%d h=%d)", - D._drawCount, - mainDevice.lines and #mainDevice.lines or -1, - mainDevice.width or -1, mainDevice.height or -1) - -- Raw write test directly to the physical monitor - D.mon.setCursorPos(1, 1) - D.mon.setBackgroundColor(colors.red) - D.mon.setTextColor(colors.white) - D.mon.write("DRAW TEST #" .. D._drawCount) - end end function D.drawSmelterDashboard()