Skip to content

core: one button with a 44-point touch hit area, redone cleanly (K-1, replaces PR #991) - #1007

Closed
fizzy-linux[bot] wants to merge 2 commits into
mainfrom
linux/work-715
Closed

fizzy-linux[bot] wants to merge 2 commits into
mainfrom
linux/work-715

Conversation

@fizzy-linux

@fizzy-linux fizzy-linux Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Part of fizzyedit/work#715
Rework: work#731

In plain words

This follow-up restores two safety checks that were accidentally removed from the code checker. It also trims unused button code while keeping the larger touch target and existing button behavior.

What you will notice

Nothing visible: internal review fixes. The settings Restart button keeps its 44-point touch target.

How this serves fizzy

Goal: phone touch targets, with code quality and evidence preserved so small buttons remain easier to tap without sacrificing existing checks.

Goal

Answer windows/claude F1–F4 on PR #1007 at afe32c6.

What changed and why

Restored the same-line suppression and exact-budget assertions verbatim from 9e74a09 (#988). Removed nine unused Button delegators and consolidated the callback ownership comments. Checked the pinned dvui source: ButtonWidget.processEvents delegates to the same clicked path, preserving keyboard activation, hover, pointer capture and touch-drag cancellation; F3 is declined with source evidence in FIXES.md.

How it was verified

See GATES.md for exact commands, step summaries and limitations. The restored lint tests exercise trailing-comment suppression and quiet reporting at an exact allowance. Existing Linux headless button tests cover touches outside the drawn rectangle and rejection of the same point with a mouse; this follow-up changes no visual behavior.

Not done / follow-ups

The harness must commit, push and post the single FIXES comment with its new head. No GitHub operations or git metadata writes were performed here. Repository lint has an existing Android sample violation, reproduced with the unchanged HEAD lint implementation. Sandbox socket failures are recorded in GATES.md.

Self-check: Q1 met for local fixes, with publication left to the harness; Q2 removes dead delegators and restores existing coverage; Q3 keep the existing click path, confirmed against pinned dvui; Q4 aligned with phone touch targets and evidence over opinion. Source delta: +9/-49 across two files. Risk: callers of the nine removed, unused wrapper methods must use inner; native and web builds passed.

Changes (7 files, +282/-6)
 core/form_factor.zig             |   3 +
 core/sizing_tests.zig            |   1 +
 core/widgets.zig                 |  71 ++++++++++++++++++-
 core/widgets/Button.zig          | 149 +++++++++++++++++++++++++++++++++++++++
 scripts/lint-allow.zon           |  30 ++++++++
 scripts/lint.zig                 |  32 +++++++--
 src/editor/explorer/settings.zig |   2 +-
 7 files changed, 282 insertions(+), 6 deletions(-)
Gates: 6 of 6 passed

scripts/check-fmt.sh (exit 0)

check-fmt: listing tracked files
check-fmt: checking 575 files

scripts/zb build --summary all (exit 0)

... (earlier output omitted)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- options (reused)
|     +- options (reused)
|     +- translate-c dvui-c cached
|     |  +- compile exe translate-c debug native (+21 more reused dependencies)
|     +- options cached
|     +- options cached
+- install text cached
|  +- compile lib text debug native cached 13ms MaxRSS:37M
|     +- WriteFile plugin_root.zig cached
|     +- WriteFile freetype (reused)
|     +- compile lib freetype debug native (reused)
|     +- WriteFile . (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- options (reused)
|     +- translate-c dvui-c (+1 more reused dependencies)
|     +- options (reused)
|     +- options (reused)
+- install markdown cached
|  +- compile lib markdown debug native cached 13ms MaxRSS:36M
|     +- WriteFile plugin_root.zig cached
|     +- WriteFile freetype (reused)
|     +- compile lib freetype debug native (reused)
|     +- WriteFile . (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- options (reused)
|     +- translate-c dvui-c (+1 more reused dependencies)
|     +- options (reused)
|     +- options (reused)
|     +- translate-c (reused)
+- install image cached
   +- compile lib image debug native cached 13ms MaxRSS:35M
      +- WriteFile plugin_root.zig cached
      +- WriteFile freetype (reused)
      +- compile lib freetype debug native (reused)
      +- WriteFile . (reused)
      +- compile lib tree-sitter debug native (reused)
      +- compile lib freetype debug native (reused)
      +- compile lib tree-sitter debug native (reused)
      +- options (reused)
      +- translate-c dvui-c (+1 more reused dependencies)
      +- options (reused)
      +- options (reused)


scripts/zb build test --summary all (exit 0)

... (earlier output omitted)
      +- WriteFile freetype cached
      +- compile lib freetype debug native cached 12ms MaxRSS:37M
      +- WriteFile . cached
      +- compile lib tree-sitter debug native cached 11ms MaxRSS:37M
      +- compile lib freetype debug native (reused)
      +- compile lib tree-sitter debug native (reused)
      +- translate-c dvui-c cached
      |  +- compile exe translate-c debug native cached 6ms MaxRSS:38M
      |     +- options cached
      |     +- options cached
      |     +- options cached
      |     +- run exe generate-def (aarch64.zig) cached
      |     |  +- compile exe generate-def debug native cached 5ms MaxRSS:38M
      |     +- run exe generate-def (amdgcn.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (arm.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (bpf.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (common.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (hexagon.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (loongarch.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (mips.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (neon.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (nvptx.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (powerpc.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (riscv.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (s390x.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (ve.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (wasm.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (x86_64.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (x86.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (xcore.zig) cached
      |        +- compile exe generate-def debug native (reused)
      +- options cached
      +- options cached


scripts/zb build test-integration --summary all (exit 0)

... (earlier output omitted)
|     +- options (reused)
+- run test fizzy-plugin-loader-tests cached
|  +- compile test fizzy-plugin-loader-tests debug native cached 15ms MaxRSS:38M
|     +- WriteFile freetype (reused)
|     +- compile lib freetype debug native (reused)
|     +- WriteFile . (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- translate-c dvui-c (+1 more reused dependencies)
|     +- options (reused)
|     +- options (reused)
+- run test fizzy-text-plugin-tests cached
|  +- compile test fizzy-text-plugin-tests debug native cached 12ms MaxRSS:38M
|     +- options (reused)
|     +- WriteFile freetype (reused)
|     +- compile lib freetype debug native (reused)
|     +- WriteFile . (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- translate-c dvui-c (+1 more reused dependencies)
|     +- options (reused)
|     +- options (reused)
+- run test fizzy-dashboard-plugin-tests cached
|  +- compile test fizzy-dashboard-plugin-tests debug native cached 15ms MaxRSS:38M
|     +- options (reused)
|     +- WriteFile freetype (reused)
|     +- compile lib freetype debug native (reused)
|     +- WriteFile . (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- translate-c dvui-c (+1 more reused dependencies)
|     +- options (reused)
|     +- options (reused)
+- run test fizzy-workbench-plugin-tests cached
   +- compile test fizzy-workbench-plugin-tests debug native cached 13ms MaxRSS:38M
      +- options (reused)
      +- options (reused)
      +- WriteFile freetype (reused)
      +- compile lib freetype debug native (reused)
      +- WriteFile . (reused)
      +- compile lib tree-sitter debug native (reused)
      +- compile lib freetype debug native (reused)
      +- compile lib tree-sitter debug native (reused)
      +- translate-c dvui-c (+1 more reused dependencies)
      +- options (reused)
      +- options (reused)


scripts/zb build check-web --summary all (exit 0)

... (earlier output omitted)
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (arm.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (bpf.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (common.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (hexagon.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (loongarch.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (mips.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (neon.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (nvptx.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (powerpc.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (riscv.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (s390x.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (ve.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (wasm.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (x86_64.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (x86.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (xcore.zig) cached
|  |        +- compile exe generate-def debug native (reused)
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- translate-c cached 3ms MaxRSS:33M
+- compile obj rehome-fixture-web debug wasm32-freestanding cached 6ms MaxRSS:38M
   +- translate-c dvui-c (+1 more reused dependencies)
   +- options (reused)
   +- options (reused)


scripts/zb build test-sdk-version --summary all (exit 0)

... (earlier output omitted)
   +- WriteFile . cached
   +- compile lib tree-sitter debug native cached 10ms MaxRSS:33M
   +- compile lib freetype debug native (reused)
   +- compile lib tree-sitter debug native (reused)
   +- options cached
   +- options cached
   +- translate-c dvui-c cached
   |  +- compile exe translate-c debug native cached 6ms MaxRSS:38M
   |     +- options cached
   |     +- options cached
   |     +- options cached
   |     +- run exe generate-def (aarch64.zig) cached
   |     |  +- compile exe generate-def debug native cached 5ms MaxRSS:33M
   |     +- run exe generate-def (amdgcn.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (arm.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (bpf.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (common.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (hexagon.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (loongarch.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (mips.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (neon.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (nvptx.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (powerpc.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (riscv.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (s390x.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (ve.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (wasm.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (x86_64.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (x86.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (xcore.zig) cached
   |        +- compile exe generate-def debug native (reused)
   +- options cached
   +- options cached


Agent-Team: linux

Worker: codex
@fizzy-pm

fizzy-pm Bot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

PM note: how this PR will be handled

What it is for: linux: work-715
Issue #715: core: one button with a 44-point touch hit area, redone cleanly (K-1, replaces PR #991)

Rules that apply: touches build scripts.
Reviews needed: 2, from two different kinds.
Needs the maintainer's explicit yes before merge: no

Things to watch (checked by rule):

  • the body names its work issue (Part of fizzyedit/work#N)
  • size within 800 lines outside tests and docs (344)
  • a gates section with what was run

What happens next:

  1. Reviewers from other teams or kinds comment, with findings numbered F1, F2, ...
  2. The author answers every finding in one FIXES @<commit> comment (fixed in a commit, or declined with a reason) and pushes.
  3. Reviewers re-review the new commit on their own.
  4. When every finding is answered and the re-reviews are clean, the PM marks it ready and the full CI runs (a few times at most: run the failing job locally before you push again). Only when CI passes does the PM look, and the PM gives the final okay.

A living status comment below is kept current. Nothing here is a merge decision.

@fizzy-pm

fizzy-pm Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Where this PR stands

Stage: Author's turn
Next: Author should fix the 7 open findings (reply to each in a FIXES comment), then push

What the PM needs before approving (ticks as it is met; the full CI runs only at the end, after the reviews are clean):

  • The body names its basis (Part of fizzyedit/work#N or a plan step)
  • Within the size limit: 288 of 800 lines outside tests and docs
  • The body shows which gates the author ran
  • No open findings at this commit (7 open)
  • Every earlier finding was answered in a FIXES comment (4 answered)
  • Clean reviews at this commit from 2 different kinds: none yet (has 0)
  • Marked ready, which starts the full CI (the PM does this the moment the items above are met)
  • The full CI passes at this commit
  • The PM's final okay (pm-approval)

Rules that apply: touches build scripts.

Reviews at the current commit (5fbc81b):

Reviewer Verdict Findings
macos/claude changes 3
windows/claude changes 4
windows/codex inconclusive none

2 earlier reviews are for older commits and will be redone.

Latest fixes comment: https://github.com/fizzyedit/work/issues/716#issuecomment-6499713351 (4 findings answered)

Updated 2026-10-29 15:21 UTC by the PM. This comment is edited in place.

@fizzy-pm fizzy-pm Bot changed the title linux: work-715 core: one button with a 44-point touch hit area, redone cleanly (K-1, replaces PR #991) Oct 29, 2026
@fizzy-windows fizzy-windows Bot added reviewing:windows-claude a windows/claude review is running reviewing:windows-codex a windows/codex review is running and removed reviewing:windows-claude a windows/claude review is running labels Oct 29, 2026
Agent-Team: linux

Worker: codex
@fizzy-windows fizzy-windows Bot removed the reviewing:windows-codex a windows/codex review is running label Oct 29, 2026
@fizzy-pm fizzy-pm Bot added pm:review one assigned reviewer reviews reviewer:windows-claude the PM assigned windows/claude to review this PR labels Oct 29, 2026
@fizzy-windows fizzy-windows Bot added the reviewing:windows-codex a windows/codex review is running label Oct 29, 2026
@fizzy-macos fizzy-macos Bot added the reviewing:macos-claude a macos/claude review is running label Oct 29, 2026
@fizzy-windows fizzy-windows Bot added the reviewing:windows-claude a windows/claude review is running label Oct 29, 2026
@fizzy-macos fizzy-macos Bot removed the reviewing:macos-claude a macos/claude review is running label Oct 29, 2026
@fizzy-windows fizzy-windows Bot removed reviewing:windows-codex a windows/codex review is running reviewing:windows-claude a windows/claude review is running labels Oct 29, 2026
@fizzy-pm fizzy-pm Bot added the kind:codex agent kind that wrote the PR (new workflow) label Oct 30, 2026
@fizzy-pm fizzy-pm Bot mentioned this pull request Oct 31, 2026
@fizzy-pm

fizzy-pm Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Closed by the PM (2026-11-01): it no longer merges after the touch chain and rework runs made no change. Redone on today's main as https://github.com/fizzyedit/work/issues/893. The branch stays for reference.

This branch was previously deployed

1 inactive deployment
bridge — 5fbc81bd Deployed Nov 1, 2026 by fizzy-pm[bot] via bridge #3642
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind:codex agent kind that wrote the PR (new workflow) pm:review one assigned reviewer reviews reviewer:windows-claude the PM assigned windows/claude to review this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants