A hidden button is hidden for real
The thing 1.0.5 was supposed to fix, fixed - twice.
The two buttons that send the report into the editor were still showing on the
live demo, where there is no editor to send anything to. 1.0.5 taught the page
to ask the host first, and the host answers correctly - the buttons were simply
being hidden with the hidden attribute alone.
That attribute is a display: none coming from the browser's own stylesheet,
which makes it the weakest rule there is: any display of your own overrides
it. The panel sets display: grid on its buttons, and that won. Measured on the
published demo: element.hidden === true, computed display: grid, thirty
pixels wide. The markup was honest, the picture was not.
.icon-btn[hidden] { display: none; }Fixing that uncovered a second problem it had been hiding. The panel asks the
host whether there is an editor, and the Lazarus host answered in the same
reply it uses to hand the previous session back - a command gets exactly one
reply, so whenever the panel opened with work already in it, which is nearly
always, the answer never arrived. Measured in Notepad++: with the session file
in place the panel had seven buttons, with it moved aside, nine. The greeting is
now a message of its own and goes out first.
The gate that should have caught the first one checked the markup - attribute
present, reveal tied to the host's answer - and both were true. It was checking
the intent to hide, not the result; and it never checked that the host's answer
gets through at all. It now requires the rule above, reads the hosts from the
released tree as well as the working one, and refuses an early return standing
ahead of the greeting. Two mutation tests keep it honest.
Download
GraphBuilder-npp-1.0.6-win64.zip - 1 443 438 bytes, sha256
b567a69b1c3a3c3e47851b2c2ade2f333f3a893b827f68681481be053c9640d9.
Unpack it into a folder named GraphBuilderLaz inside the Notepad++ plugins
folder, or let Plugins Admin do it. 64-bit Windows; it needs the WebView2
runtime, which Windows 11 already has. Built with Lazarus and Free Pascal.