Fix blurred brush crash after canvas resize

This commit is contained in:
manongjohn 2021-08-20 16:12:52 -04:00
parent 7f444c8c96
commit 67e67b46c1
2 changed files with 14 additions and 1 deletions

View file

@ -2555,6 +2555,13 @@ bool ToonzRasterBrushTool::isPencilModeActive() {
return getTargetType() == TTool::ToonzImage && m_pencil.getValue();
}
//---------------------------------------------------------------------------------------------------
void ToonzRasterBrushTool::onCanvasSizeChanged() {
onDeactivate();
setWorkAndBackupImages();
}
//------------------------------------------------------------------
void ToonzRasterBrushTool::onColorStyleChanged() {
@ -2608,6 +2615,11 @@ ToonzRasterBrushToolNotifier::ToonzRasterBrushToolNotifier(
ToonzRasterBrushTool *tool)
: m_tool(tool) {
if (TTool::Application *app = m_tool->getApplication()) {
if (TXshLevelHandle *levelHandle = app->getCurrentLevel()) {
bool ret = connect(levelHandle, SIGNAL(xshCanvasSizeChanged()), this,
SLOT(onCanvasSizeChanged()));
assert(ret);
}
if (TPaletteHandle *paletteHandle = app->getCurrentPalette()) {
bool ret;
ret = connect(paletteHandle, SIGNAL(colorStyleChanged(bool)), this,

View file

@ -165,6 +165,7 @@ public:
// Tools.
bool isPencilModeActive() override;
void onCanvasSizeChanged();
void onColorStyleChanged();
bool askRead(const TRect &rect) override;
bool askWrite(const TRect &rect) override;
@ -259,7 +260,7 @@ public:
ToonzRasterBrushToolNotifier(ToonzRasterBrushTool *tool);
protected slots:
// void onCanvasSizeChanged() { m_tool->onCanvasSizeChanged(); }
void onCanvasSizeChanged() { m_tool->onCanvasSizeChanged(); }
void onColorStyleChanged() { m_tool->onColorStyleChanged(); }
};