r19678 by jghali - #12857: Closing document while editing master pages may cause crash
scribus-commit
scribus-commit at lists.scribus.net
Sun Dec 21 11:33:12 UTC 2014
Author: jghali
Date: Sun Dec 21 11:33:12 2014
New Revision: 19678
URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=19678
Log:
#12857: Closing document while editing master pages may cause crash
Modified:
trunk/Scribus/scribus/scribus.cpp
Modified: trunk/Scribus/scribus/scribus.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=19678&path=/trunk/Scribus/scribus/scribus.cpp
==============================================================================
--- trunk/Scribus/scribus/scribus.cpp (original)
+++ trunk/Scribus/scribus/scribus.cpp Sun Dec 21 11:33:12 2014
@@ -7275,6 +7275,10 @@
pagePalette->enablePalette(true);
pagePalette->rebuildMasters();
view->setScale(storedViewScale);
+ // #12857 : the number of pages may change when undoing/redoing
+ // page addition/deletion while in edit mode, so take some extra
+ // care so that storedPageNum is in appropriate range
+ storedPageNum = qMin(storedPageNum, doc->DocPages.count() - 1);
doc->setCurrentPage(doc->DocPages.at(storedPageNum));
view->setContentsPos(static_cast<int>(storedViewXCoor * storedViewScale), static_cast<int>(storedViewYCoor * storedViewScale));
view->DrawNew();
@@ -7338,6 +7342,10 @@
pagePalette->enablePalette(true);
pagePalette->rebuildMasters();
view->setScale(storedViewScale);
+ // #12857 : the number of pages may change when undoing/redoing
+ // page addition/deletion while in edit mode, so take some extra
+ // care so that storedPageNum is in appropriate range
+ storedPageNum = qMin(storedPageNum, doc->DocPages.count() - 1);
doc->setCurrentPage(doc->DocPages.at(storedPageNum));
view->setContentsPos(static_cast<int>(storedViewXCoor * storedViewScale), static_cast<int>(storedViewYCoor * storedViewScale));
if (doc->currentEditedTextframe != NULL)
@@ -7419,6 +7427,10 @@
pagePalette->setVisible(m_pagePalVisible);
scrActions["toolsPages"]->setChecked(m_pagePalVisible);
}
+ // #12857 : the number of pages may change when undoing/redoing
+ // page addition/deletion while in edit mode, so take some extra
+ // care so that storedPageNum is in appropriate range
+ storedPageNum = qMin(storedPageNum, doc->DocPages.count() - 1);
doc->setCurrentPage(doc->DocPages.at(storedPageNum));
doc->minCanvasCoordinate = doc->stored_minCanvasCoordinate;
doc->maxCanvasCoordinate = doc->stored_maxCanvasCoordinate;
More information about the scribus-commit
mailing list