Skip to content

Make the boxes reachable, and the settings say what they do - #33

Merged
clemperorpenguin merged 1 commit into
mainfrom
fix-boxes-and-settings
Sep 9, 2026
Merged

clemperorpenguin merged 1 commit into
mainfrom
fix-boxes-and-settings

Conversation

@clemperorpenguin

Copy link
Copy Markdown
Owner

The boxes could not be used at all on Windows. A translation box is a frame with a hole in it, and the hole was the whole window: a layered window passes the mouse straight through its fully transparent pixels, so the only part of a box that could be hovered, dragged or double- clicked was the 2px line drawn around it - and the mode and delete buttons only appear on hover. Unclickable, undraggable, uncloseable, and impossible to clear once set.

So the frame is now a band you can hit, painted faintly because a pixel with no alpha is a pixel the mouse never reaches, and the middle is masked out of the window entirely, which is what X11 needed for the opposite reason: there, the box was swallowing every click aimed at the game inside it. The orb's panel lists the boxes besides, one chip each to cycle the mode and delete, and a clear-all - nothing about managing a box should depend on finding it with the pointer.

The boxes also built an OCR reader whatever the settings said, which on a machine that has never run scripts/export_ppocr_onnx.py - every machine, until someone does - meant every box failing on its first read while the settings screen said something else. The engine is resolved in one place now, falls back to the vision model when the local reader has no weights, and the failure it does hit reaches the orb instead of a log nobody has open. A loop that fails the same way eight times running stops rather than grinding, and says so once, not once a tick.

Settings: five tabs named for tasks rather than four with a seventeen control junk drawer called Features, section headings inside each, and the dialog moved out of app.py, which is 557 lines shorter for it. The leader key, the dialogue delay and the experimental-live checkbox are gone - all three had stopped controlling anything, which is worse than missing.

The boxes could not be used at all on Windows.  A translation box is a
frame with a hole in it, and the hole was the whole window: a layered
window passes the mouse straight through its fully transparent pixels,
so the only part of a box that could be hovered, dragged or double-
clicked was the 2px line drawn around it β€” and the mode and delete
buttons only appear on hover.  Unclickable, undraggable, uncloseable,
and impossible to clear once set.

So the frame is now a band you can hit, painted faintly because a pixel
with no alpha is a pixel the mouse never reaches, and the middle is
masked out of the window entirely, which is what X11 needed for the
opposite reason: there, the box was swallowing every click aimed at the
game inside it.  The orb's panel lists the boxes besides, one chip each
to cycle the mode and delete, and a clear-all β€” nothing about managing a
box should depend on finding it with the pointer.

The boxes also built an OCR reader whatever the settings said, which on
a machine that has never run scripts/export_ppocr_onnx.py β€” every
machine, until someone does β€” meant every box failing on its first read
while the settings screen said something else.  The engine is resolved
in one place now, falls back to the vision model when the local reader
has no weights, and the failure it does hit reaches the orb instead of a
log nobody has open.  A loop that fails the same way eight times running
stops rather than grinding, and says so once, not once a tick.

Settings: five tabs named for tasks rather than four with a seventeen-
control junk drawer called Features, section headings inside each, and
the dialog moved out of app.py, which is 557 lines shorter for it.  The
leader key, the dialogue delay and the experimental-live checkbox are
gone β€” all three had stopped controlling anything, which is worse than
missing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y8iQjgdf2uvAcHDNcqwMZz
@clemperorpenguin
clemperorpenguin merged commit 62a09c8 into main Sep 9, 2026
6 checks passed
@clemperorpenguin
clemperorpenguin deleted the fix-boxes-and-settings branch September 9, 2026 21:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant