From 88729418b7e6d58a5932e6b8b2ba3bdcb5d06e47 Mon Sep 17 00:00:00 2001 From: easyw Date: Fri, 29 Jun 2018 11:26:34 +0200 Subject: [PATCH] fixed a crash on escape from Image Scaling WB --- src/Mod/Image/Gui/Command.cpp | 1 + src/Mod/Image/ImageTools/_CommandImageScaling.py | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Mod/Image/Gui/Command.cpp b/src/Mod/Image/Gui/Command.cpp index 1aa58ea47f..0990592255 100644 --- a/src/Mod/Image/Gui/Command.cpp +++ b/src/Mod/Image/Gui/Command.cpp @@ -155,6 +155,7 @@ void CmdCreateImagePlane::activated(int iMsg) doCommand(Doc,"App.activeDocument().%s.YSize = %d",FeatName.c_str(),nHeight); doCommand(Doc,"App.activeDocument().%s.Placement = App.Placement(App.Vector(%f,%f,%f),App.Rotation(%f,%f,%f,%f))" ,FeatName.c_str(),p.x,p.y,p.z,r[0],r[1],r[2],r[3]); + doCommand(Doc,"Gui.SendMsgToActiveView('ViewFit')"); commitCommand(); } } diff --git a/src/Mod/Image/ImageTools/_CommandImageScaling.py b/src/Mod/Image/ImageTools/_CommandImageScaling.py index 8351169db1..8e9b5e08cc 100644 --- a/src/Mod/Image/ImageTools/_CommandImageScaling.py +++ b/src/Mod/Image/ImageTools/_CommandImageScaling.py @@ -149,6 +149,7 @@ def cmdCreateImageScaling(name): self.tracker.off() self.tracker.finalize() self.dialog.hide() + FreeCADGui.SendMsgToActiveView("ViewFit") except (ValueError, ZeroDivisionError): self.label1.setText(_translate("Dialog", "Enter distance", None)) return @@ -157,9 +158,10 @@ def cmdCreateImageScaling(name): return def reject(self): + if len(self.stack) != 2: + self.view.removeEventCallbackPivy(pvy.SoMouseButtonEvent.getClassTypeId(),self.callback) + self.view.removeEventCallbackPivy(pvy.SoLocation2Event.getClassTypeId(),self.callmouse) self.stack=[] - self.view.removeEventCallbackPivy(pvy.SoMouseButtonEvent.getClassTypeId(),self.callback) - self.view.removeEventCallbackPivy(pvy.SoLocation2Event.getClassTypeId(),self.callmouse) self.tracker.off() self.tracker.finalize() self.dialog.hide()