[TD]fix double draw on position change

This commit is contained in:
Wanderer Fan
2022-05-30 13:20:21 -04:00
committed by WandererFan
parent 54ffceea51
commit 78c22e33de
3 changed files with 27 additions and 18 deletions

View File

@@ -214,15 +214,23 @@ void ViewProviderDrawingView::finishRestoring()
void ViewProviderDrawingView::updateData(const App::Property* prop)
{
if (prop == &(getViewObject()->Rotation) ||
prop == &(getViewObject()->X) ||
prop == &(getViewObject()->Y) ) {
//redrawn the whole view on Rotation change
if (prop == &(getViewObject()->Rotation)) {
QGIView* qgiv = getQView();
if (qgiv) {
qgiv->updateView(true);
}
}
//only move the view on X,Y change
if (prop == &(getViewObject()->X) ||
prop == &(getViewObject()->Y) ){
QGIView* qgiv = getQView();
if (qgiv) {
qgiv->QGIView::updateView(true);
}
}
Gui::ViewProviderDocumentObject::updateData(prop);
}
@@ -257,7 +265,7 @@ Gui::MDIView *ViewProviderDrawingView::getMDIView() const
void ViewProviderDrawingView::onGuiRepaint(const TechDraw::DrawView* dv)
{
// Base::Console().Message("VPDV::onGuiRepaint(%s)\n", dv->getNameInDocument());
// Base::Console().Message("VPDV::onGuiRepaint(%s)\n", dv->getNameInDocument());
if (dv == getViewObject()) {
if (!dv->isRemoving() &&
!dv->isRestoring()) {