Fixed segfault that occurs when undoing while drawing
This commit is contained in:
parent
0a8add3df1
commit
7f905f01df
5 changed files with 9 additions and 11 deletions
|
|
@ -16,7 +16,6 @@
|
|||
BrushTool::BrushTool(DrawingProgram& initDrawP):
|
||||
drawP(initDrawP)
|
||||
{
|
||||
controls.intermediateItem = std::make_shared<DrawBrushStroke>();
|
||||
}
|
||||
|
||||
void BrushTool::reset_tool() {
|
||||
|
|
@ -172,13 +171,13 @@ void BrushTool::gui_toolbox() {
|
|||
}
|
||||
|
||||
void BrushTool::commit_stroke() {
|
||||
if(controls.intermediateItem) {
|
||||
if(controls.intermediateItem && controls.intermediateItem->collabListInfo.lock()) {
|
||||
if(!controls.intermediateItem->d.points.empty()) {
|
||||
controls.intermediateItem->client_send_update_final(drawP);
|
||||
controls.intermediateItem->final_update(drawP);
|
||||
controls.intermediateItem = nullptr;
|
||||
}
|
||||
}
|
||||
controls.intermediateItem = nullptr;
|
||||
}
|
||||
|
||||
void BrushTool::draw(SkCanvas* canvas, const DrawData& drawData) {
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ void EditTool::add_point_handle(const HandleData& handle) {
|
|||
|
||||
void EditTool::reset_tool() {
|
||||
auto a = controls.compToEdit.lock();
|
||||
if(a) {
|
||||
if(a && a->collabListInfo.lock()) {
|
||||
switch(a->get_type()) {
|
||||
case DRAWCOMPONENT_TEXTBOX:
|
||||
drawP.textBoxTool.commit_edit_updates(std::static_pointer_cast<DrawTextBox>(a), controls.prevData);
|
||||
|
|
|
|||
|
|
@ -140,11 +140,11 @@ void EllipseDrawTool::tool_update() {
|
|||
}
|
||||
|
||||
void EllipseDrawTool::commit() {
|
||||
if(controls.intermediateItem) {
|
||||
if(controls.intermediateItem && controls.intermediateItem->collabListInfo.lock()) {
|
||||
controls.intermediateItem->client_send_update_final(drawP);
|
||||
controls.intermediateItem->final_update(drawP);
|
||||
controls.intermediateItem = nullptr;
|
||||
}
|
||||
controls.intermediateItem = nullptr;
|
||||
}
|
||||
|
||||
void EllipseDrawTool::draw(SkCanvas* canvas, const DrawData& drawData) {
|
||||
|
|
|
|||
|
|
@ -140,11 +140,11 @@ void RectDrawTool::tool_update() {
|
|||
}
|
||||
|
||||
void RectDrawTool::commit_rectangle() {
|
||||
if(controls.intermediateItem) {
|
||||
if(controls.intermediateItem && controls.intermediateItem->collabListInfo.lock()) {
|
||||
controls.intermediateItem->client_send_update_final(drawP);
|
||||
controls.intermediateItem->final_update(drawP);
|
||||
controls.intermediateItem = nullptr;
|
||||
}
|
||||
controls.intermediateItem = nullptr;
|
||||
}
|
||||
|
||||
void RectDrawTool::draw(SkCanvas* canvas, const DrawData& drawData) {
|
||||
|
|
|
|||
|
|
@ -274,12 +274,11 @@ void TextBoxTool::update_textbox_network(const std::shared_ptr<DrawTextBox>& tex
|
|||
}
|
||||
|
||||
void TextBoxTool::commit() {
|
||||
if(controls.intermediateItem) {
|
||||
if(controls.intermediateItem && controls.intermediateItem->collabListInfo.lock()) {
|
||||
controls.intermediateItem->client_send_update_final(drawP);
|
||||
controls.intermediateItem->final_update(drawP);
|
||||
//controls.intermediateItem->currentlyUpdating = true; // It remains true, as we are about to start writing into the text box we just placed
|
||||
controls.intermediateItem = nullptr;
|
||||
}
|
||||
controls.intermediateItem = nullptr;
|
||||
}
|
||||
|
||||
void TextBoxTool::draw(SkCanvas* canvas, const DrawData& drawData) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue