diff --git a/docs/design_tab.md b/docs/design_tab.md index f9ad40cacb..9c65df332b 100644 --- a/docs/design_tab.md +++ b/docs/design_tab.md @@ -137,6 +137,7 @@ selected by the mode, not by whether a sketch session is running. | Key | Action | |---|---| +| `Home` | Axonometric view, fitted to the model | | `P` | Origin planes on/off | | `A` | World axes on/off | | `X` | Section view on/off | diff --git a/src/slic3r/GUI/DesignPanel.cpp b/src/slic3r/GUI/DesignPanel.cpp index a80f3a0836..d430f713cf 100644 --- a/src/slic3r/GUI/DesignPanel.cpp +++ b/src/slic3r/GUI/DesignPanel.cpp @@ -426,6 +426,23 @@ DesignPanel::DesignPanel(wxWindow* parent) }; m_keys_feature['X'] = [this] { toggle_section_view(); }; // toggle the single section on/off + // Home: axonometric view, fitted to the model. + // + // DesignCanvas::set_view() and fit_view() were written and then never called from + // anywhere in the tree, so the Design viewport had NO way back to a standard view — + // no key, no button, nothing but orbiting by hand until the model happened to be in + // frame. A camera left pointing along the bed plane looks exactly like a renderer + // that has failed, which is how this was found. + // + // Home rather than a letter because every letter A-Z is already a Shift+letter tool + // shortcut, and because Home is the reset-the-view key users arrive with. set_view() + // already does select_view + zoom_to_volumes, so this is fit and orient in one. + m_keys_feature[WXK_HOME] = [this] { + if (!m_viewport) return; + m_viewport->set_view("iso"); + set_status(_L("Isometric view, fitted")); + }; + // Shared flyout glyph tint (used by BOTH the feature and sketch toolbars). Re-tint each // design_* glyph to the DropDown's resolved TEXT colour so it reads on the popup in either // theme: text_color is 0x363636, which darkModeColorFor() maps to a light tone in dark mode