diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/FancyDockingGhostWidget.cpp b/Code/Framework/AzQtComponents/AzQtComponents/Components/FancyDockingGhostWidget.cpp index 04387875df..5456356458 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/FancyDockingGhostWidget.cpp +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/FancyDockingGhostWidget.cpp @@ -48,7 +48,7 @@ namespace AzQtComponents void FancyDockingGhostWidget::setPixmap(const QPixmap& pixmap, const QRect& targetRect, QScreen* screen) { - const bool needsRepaint = m_pixmap.cacheKey() != pixmap.cacheKey() || m_clipToWidgets; + bool needsRepaint = m_pixmap.cacheKey() != pixmap.cacheKey() || m_clipToWidgets; m_pixmap = pixmap; if (pixmap.isNull() || targetRect.isNull() || !screen) @@ -80,6 +80,7 @@ namespace AzQtComponents QPoint midPoint = targetRect.topLeft() + QPoint(targetRect.width() / 2, targetRect.height() / 2); QScreen* pointScreen = QApplication::screenAt(midPoint); QRect rect(targetRect); + PaintMode paintMode = PaintMode::FULL; if (!pointScreen || pointScreen != screen) { @@ -87,26 +88,28 @@ namespace AzQtComponents { rect.setLeft(rect.left() - rect.width()); rect.setTop(rect.top() - rect.height()); - m_paintMode = PaintMode::BOTTOMRIGHT; + paintMode = PaintMode::BOTTOMRIGHT; } else { rect.setRight(rect.right() + rect.width()); rect.setTop(rect.top() - rect.height()); - m_paintMode = PaintMode::BOTTOMLEFT; + paintMode = PaintMode::BOTTOMLEFT; } } - else + + if (m_paintMode != paintMode) { - m_paintMode = PaintMode::FULL; + needsRepaint = true; } setGeometry(rect); + m_paintMode = paintMode; setPixmapVisible(true); if (needsRepaint) { - update(); + repaint(); } }