Apache OpenOffice (AOO) Bugzilla – Issue 79921
Resizing Chart might just resize the replacement image instead of getting a new one
Last modified: 2013-02-24 21:21:42 UTC
1. Create a Calc document, enter some numbers 2. Create a Chart (Insert Chart, while the cursor is in a cell with a number) 3. Leave the chart's inplace mode 4. Resize the chart out-place (e.g. just make it wider) => You'll notice that the chart is recalculated, esp.: the font still has the correct aspect ratio 5. Click on "Sheet2" (this swaps the chart out, maybe a running->loaded state change?) 6. Click back to "Sheet 1" 7. Resize the chart again, (e.g. just make it wider) => The chart is NOT recalculated, esp.: the fonts are stretched, collapsed due to a changed aspect ratio. ->MAV: I don't know if this is your place in the code to observe for this. This is what I found out as difference between 4. and 7.: When the chart is resized the method SdrOle2Obj::ImpSetVisAreaSize() is called. In this method SfxInPlaceClient::GetClient() is called (see svx/source/svdrwa/svdoole2.cxx:1534). In 4. this method returns an object, in 7. it returns NULL. Maybe this is the error. Maybe the condition for a proper resize "if ( pClient || bHasOwnClient )" some lines below is wrong.
The problem was that there was no client, and an object requires a correct client to proceed with resizing. With the introduced in fwk72 fix the object gets a lightwait client if there is no, so the replacement image is calculated correctly.
MAV->KLA: Please verify the issue.
seen ok in cws
Verified fixed in m6, closing.