From 31991c29fcb04a5bbc36173a973504357aeb6295 Mon Sep 17 00:00:00 2001 From: Everson Mayer <84752630+everctba@users.noreply.github.com> Date: Sun, 19 Apr 2026 00:26:36 -0300 Subject: [PATCH] Implement canvas fitting on new scene creation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added “Fit to Canvas” (Ctrl + 0) function to automatically center and scale the artboard when creating a new scene. When creating a new file (for example, 1220×1080), the artboard is not centered on the canvas, unlike the default 1920×1080 size, which initializes already centered. --- src/ui/dialogs/scenesettingsdialog.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ui/dialogs/scenesettingsdialog.cpp b/src/ui/dialogs/scenesettingsdialog.cpp index 7403fb555..2f26fc808 100644 --- a/src/ui/dialogs/scenesettingsdialog.cpp +++ b/src/ui/dialogs/scenesettingsdialog.cpp @@ -29,6 +29,7 @@ #include "appsupport.h" #include "Private/document.h" #include "Private/esettings.h" +#include "../../app/GUI/canvaswindow.h" SceneSettingsDialog::SceneSettingsDialog(Canvas * const canvas, QWidget * const parent) @@ -367,6 +368,11 @@ void SceneSettingsDialog::sNewSceneDialog(Document& document, const auto block = newCanvas->blockUndoRedo(); dialog->applySettingsToCanvas(newCanvas); newCanvas->anim_setAbsFrame(newCanvas->getFrameRange().fMin); + // --- Fit to canvas = Ctrl + 0 when creating a new file. --- + const auto target = KeyFocusTarget::KFT_getCurrentTarget(); + const auto cwTarget = dynamic_cast(target); + if (cwTarget) { cwTarget->fitCanvasToSize(); } + // ----------------------------------------------------------- dialog->close(); docPtr->actionFinished(); });