Apache OpenOffice (AOO) Bugzilla – Full Text Issue Listing |
Summary: | embedded chart with graphic object is clipped | ||||||
---|---|---|---|---|---|---|---|
Product: | Draw | Reporter: | Joe Smith <jes> | ||||
Component: | viewing | Assignee: | wolframgarten | ||||
Status: | CLOSED FIXED | QA Contact: | issues@graphics <issues> | ||||
Severity: | Trivial | ||||||
Priority: | P3 | CC: | IngridvdM, issues | ||||
Version: | DEV300m77 | Keywords: | regression | ||||
Target Milestone: | OOo 3.3 | ||||||
Hardware: | PC | ||||||
OS: | All | ||||||
Issue Type: | DEFECT | Latest Confirmation in: | --- | ||||
Developer Difficulty: | --- | ||||||
Attachments: |
|
Description
Joe Smith
2010-04-28 19:02:29 UTC
Created attachment 69164 [details]
Sample document showing problem
I can confirm the problem on windows too: Load the attached document. Activate and deactivate the chart and look at the meta file replacement -> Parts of the chart are clipped away dependent on the position of the blue note. The problem did not occur within dev300m67. But it does occur on dev300m69. (Couldn't check m68). @AW, please have a look at this issues as CWS aw078 was integrated into dev300m69 changing a lot around metafiles with issue 106541 and issue 106379. It seems as if a clipping region is not removed properly after 'visualizing' the callout. AW: Checked, happens as described. Added to CWS aw081. AW: There is not a single MetaClipRegionAction created when chart produces the metafile, so it has to be something different. Checking back-transformation to primitive sequence... AW: Definitely has to do with MetafilePrimitive2D::create2DDecomposition. When avoiding it by forcing VclPixelProcessor2D to use metafile directly, the clipping does not happen. Checking deeper... AW: The clip is created from the GraphicExporter that ChartView::getMetaFile uses to get the metafile. This is done with and without the graphic object, using the same values. still, when painting, a different clip is created. Hmmm.... AW: Found the reason now, it's pretty complex. The new interpreter to translate metafiles to sequences of primitives used in the decomposition implementation of the Metafile primitive uses stacks to hold created primitives and a PropertyHolder for the current status (replacement for OutDev state). Of course a ClipRegion coming along the Metafile cannot be applied at the time interpreting it; it needs to be remembered in the state, all MetaActions coming have to be interpreted, and when the ClipRegion changes (or Metafile is at end) the created primitives get embedded to the current ClipRegion. All this is correct and works well, but the transformation (AKA MapMode for Metafiles) used to interpret the ClipRegion at the point in time it gets used may be wrong; it's no longer in the state when the clip action came along, but may have undergone any stacked changes during interpreting the other content. There are two solutions: (a) Remember the Tranformation with each ClipRegion in the state at the time the CLipAction comes along (b) Trasform the ClipRegions when they come along immediately with the current transformation Of couse (b) is the better solution, but it requires complete usage of B2DPolygons as ClipPolygons in the process. This includes MetaFile actions which modify the current active ClipRegion. For this i still used the old Regions, but already internally clipped against PolyPolygons. This is a good pint to change all this to PolyPolygons... AW: Adapted all codce accordingly, works as expected. Need to do some more tests since it's at a critical part... AW: Added small change to META_MOVECLIPREGION_ACTION. Checked in, done. AW: Checked in CWS aw081, works as expected. AW->WG: Please verify. Verified in CWS. Testing "OOo-dev 3.3 300m83(Build:9511)" on Fedora Linux 13 No clipping in sample document now. The new "graphic editing in charts" feature looks great also. Thanks! Closed. *** Issue 110089 has been marked as a duplicate of this issue. *** |