Apache OpenOffice (AOO) Bugzilla – Issue 19871
cannot rotate attached object in draw
Last modified: 2009-01-19 09:45:38 UTC
Hi, I don't know what it is ... but I cannot rotate the blue triangle in the attached file. I can copy-paste it to another doc and the problem still persists with this shape. I have restarted OO - same problem. I have no clue but it seems pretty specific to only this shape and only in special rotations. Try rotating the triangle to 120 degrees or 240. It will be cut of at the sides. b.
Created attachment 9553 [details] try rotating the triangle to 120 or 240 degrees
If I understand you right the triangle can be rotated but the edges are cut of at specific rotation angles. Is this correct? This is reproducible in a current internal version. Thanks for your help.
Yes, that is more precise.
Ok, set to new.
Reassigned to Armin. Please have a look.
AW: I have not the slightest idea how this may happen, but it happens. The object is a polygon object and the angles which show problems are the ones where the base line of the triangle is horizontal. There must somehow be a reason why the GetBoundRect from the polygon behaves different in those cases. I will hae to debug this one.
Have a look at the Glue Point, when I remove it the rotation problem does not occur (so far)
AW: Yes, indeed. It must somehow be caused by the GluePoints. Thus, i will wait for the necessary GluePoint reworking which then should influence this problem.
.
set to prio4
AW: Changed to OOo later.
AW: Checked after primitives (aw033). Still the triangle bets the wrong SnapRect when transformed. Looking for a missing SnapRect invalidation...
AW: The SnapRect gets invalidated, but is recalcualted before the geometry data (the polygon itself) gets changed in SdrPathObj::NbcRotate since first the parent method - SdrTextObj::NbcRotate - gets called. There, the SnapRect gets invalidated but also immediately (and wrongly) recalculated in SetGlueReallyAbsolute(FALSE). I will have to change all svdopath.cxx methods to first modify locally and then calling the parent methods. Hopefully this will lose it's relevance once the GluePoints will be defined relative to the object anyways and lo longer with their crude historical definitions. Testing...
AW: Adapted SdrPathObj::NbcMove, NbcResize, NbcRotate, NbcShear and NbcMirror to first modify locally and then call parent. Works as expected, checking in. For the medium run it will be necessary to rework the gluepoint definitions and handling.
AW: Checked in, done.
AW: Changing target
AW->WG: Please review like described in the task.
Verified in CWS.
Tested in m38. Closed.