Take :checkbutton, which is :checkbox under another name
frq writes both. libvidya's tag table has them as one arm — `"checkbutton" | "checkbox" => Self::CheckButton` — so a client that switched backends would have found half its checkboxes rendering as empty containers, which is what an unknown tag becomes here. Found by diffing every hiccup tag frq renders against the ones this backend handles, rather than by someone noticing a missing tick. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
26defff parent: 0b92f67 modified
glimmer-backends/glimmer-jvui/src/glimmer_jvui/core.clj +4 -1 | @@ -149,7 +149,10 @@ | ||
| 149 | 149 | (record! n id) |
| 150 | 150 | (when hit? (fire! n :on-click))) |
| 151 | 151 | |
| 152 | - :checkbox (let [was (boolean (:checked props)) | |
| 152 | + ;; :checkbutton is the same widget under GTK's name for it, which is | |
| 153 | + ;; what libvidya calls it too — `"checkbutton" | "checkbox"` is one | |
| 154 | + ;; arm of its tag table. frq writes both. | |
| 155 | + (:checkbox :checkbutton) (let [was (boolean (:checked props)) | |
| 153 | 156 | id (c/next-id key) |
| 154 | 157 | now (w/checkbox was s {:key key})] |
| 155 | 158 | (record! n id) |
| @@ -149,7 +149,10 @@ | |||
| 149 | (record! n id) | 149 | (record! n id) |
| 150 | (when hit? (fire! n :on-click))) | 150 | (when hit? (fire! n :on-click))) |
| 151 | 151 | ||
| 152 | - :checkbox (let [was (boolean (:checked props)) | 152 | + ;; :checkbutton is the same widget under GTK's name for it, which is |
| 153 | + ;; what libvidya calls it too — `"checkbutton" | "checkbox"` is one | ||
| 154 | + ;; arm of its tag table. frq writes both. | ||
| 155 | + (:checkbox :checkbutton) (let [was (boolean (:checked props)) | ||
| 153 | id (c/next-id key) | 156 | id (c/next-id key) |
| 154 | now (w/checkbox was s {:key key})] | 157 | now (w/checkbox was s {:key key})] |
| 155 | (record! n id) | 158 | (record! n id) |