diff --git a/scribus/scribusdoc.cpp b/scribus/scribusdoc.cpp --- a/scribus/scribusdoc.cpp +++ b/scribus/scribusdoc.cpp @@ -14253,18 +14253,29 @@ // #8541, #8761: "when resizing with ALT-arrow, the size values in the PP aren't updated" // currItem->setWidthHeight(newX, newY, true); currItem->setWidthHeight(newX, newY); + /*#3612 + *Rotation modes and basepoints: + *rotMode == 0 is top left + *rotMode == 1 is top right + *rotMode == 2 is center + *rotMode == 3 is bottom left + *rotMode == 4 is bottom right + */ if ((m_rotMode != 0) && (fromMP) && (!isLoading()) && (appMode == modeNormal)) { - double moveX=dX, moveY=dY; - if (m_rotMode==2) + double moveX = dX, moveY = dY; + //Basepoint is center + if (m_rotMode == 2) { - moveX/=2.0; - moveY/=2.0; + moveX /= 2.0; + moveY /= 2.0; } - else if (m_rotMode==3) - moveX=0.0; - else if (m_rotMode==1) - moveY=0.0; + //Basepoint is bottom left + else if (m_rotMode == 3) + moveX = 0.0; + //Basepoint is top right + else if (m_rotMode == 1) + moveY = 0.0; moveItem(moveX, moveY, currItem); } if ((currItem->asImageFrame()) && (!currItem->Sizing) && (appMode != modeEditClip))