mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-18 22:42:37 +00:00
The chip in the corner was holding the keyboard, and the planes were holding the bed
Two reports, three defects, all three measured on the running app rather than reasoned about.
"Keyboard focus in drawing tool is broken so that now they are slow and cumbersome." After a
dimensioned entity the bottom-right readout chip — 119x31, borderless, a wxFrame — held the X
input focus. Pressing r produced NO [KEYTRACE] line at all: the key never reached the panel's
CHAR_HOOK. One bare canvas click moved focus back to the main window and the identical key armed
the tool. So every shortcut was dead after every dimension, and the way to get the keyboard back
was to click somewhere harmless. That is the whole of "slow and cumbersome".
Its sibling, the status chip, is a wxPopupWindow for exactly this reason and carries a comment
warning against turning it back into a frame. The readout was left a frame on the premise that
"it appears mid-gesture and the next input is the mouse" — which the measurement falsifies: the
chip keeps the last value on screen after the gesture ends, and a frame that has the focus does
not give it back. It is now a popup too, with the placement and the iconise/deactivate lifecycle
its sibling already needed, because an override-redirect window would otherwise sit on the bare
desktop when the app is minimised.
"Planes hide the bed." Literally true, twice over. The reference planes were half-extent 0.6 *
the bed's larger side — a square 1.2x the plate — and all three are drawn with depth testing
off, so they painted over the plate grid from edge to edge. 0.3 puts them inside the bed, which
is also the Onshape look the size was reaching for: a modest square at the origin, not a
tablecloth.
And the other half was mine. 3f52166e32 muted the bed for the duration of a sketch, on the
argument that a plate grid and a sketch grid are the same visual language. The argument is right
and the call was wrong, because there IS no sketch grid to take over. Pick XY, arm Line, and the
viewport was an empty grey field: no bed, no grid, no origin, nothing to judge a length or a
direction against. The plate grid was carrying the ground reference for the whole tab. The banner
already says where you are; taking the floor away as well only made the sketch harder to draw.
The Bed checkbox is the one thing that governs the bed, in every mode.
Verified on behemoth :10 with the rebuilt binary: focus after a dimension chain is the main
window, r arms Rectangle with no click in between, and the plate grid is under the sketch.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011FbJKJAJxxkhDTs9XdZzKA
This commit is contained in:
co-authored by
Claude Opus 5
parent
cf444a6ab6
commit
00d6c191dc
@@ -4483,11 +4483,15 @@ void DesignPanel::set_ui_mode(UiMode m)
|
||||
// rebuild, which is not an event that happens when you merely press Sketch.
|
||||
update_reference_planes();
|
||||
|
||||
// Say where you are, in words, across the top of the viewport — and mute the printer bed
|
||||
// while you are there. The plate grid and a sketch grid are the same visual language, and
|
||||
// reading one as the other is how a sketch gets drawn against the wrong reference. The bed
|
||||
// checkbox stays the stored preference and is restored on the way out; ticking it mid-sketch
|
||||
// still shows the bed, because that is a deliberate act and this is only a default.
|
||||
// Say where you are, in words, across the top of the viewport.
|
||||
//
|
||||
// THE BED IS NOT MUTED HERE, and it was: "a plate grid and a sketch grid are the same visual
|
||||
// language" is true and still the wrong call, because there IS no sketch grid to replace it.
|
||||
// Seen on the rig: pick XY, arm Line, and the viewport is an empty grey field — no bed, no
|
||||
// grid, no origin, nothing to judge a length or a direction against. The plate grid was
|
||||
// carrying the ground reference for the whole tab. The banner already says where you are;
|
||||
// taking the floor away as well only made the sketch harder to draw. The Bed checkbox is the
|
||||
// one thing that governs the bed, in every mode.
|
||||
if (m_sketch_banner != nullptr) {
|
||||
const bool sketching = (m == UiMode::Sketch);
|
||||
if (sketching && m_sketch_banner_txt != nullptr)
|
||||
@@ -4497,8 +4501,6 @@ void DesignPanel::set_ui_mode(UiMode m)
|
||||
m_feature_counter + 1));
|
||||
m_sketch_banner->Show(sketching);
|
||||
m_sketch_banner->GetParent()->Layout();
|
||||
if (m_viewport != nullptr)
|
||||
m_viewport->set_show_bed(!sketching && (m_show_bed == nullptr || m_show_bed->GetValue()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user