To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=102380





------- Additional comments from [email protected] Fri Jun 26 16:45:54 +0000 
2009 -------
AW: Okay, here we go. Base of consideration is the SdrGrafObj. GraphicObjects
which are swapped have a swap-pointer set to SdrGrafObj::ImpSwapHdl. When
(view-indeendent) primitives are created (SdrGrafPrimitive2D) from the
ViewContact (VC) inside
ViewContactOfGraphic::createViewIndependentPrimitive2DSequence the GraphicObject
is copied using the copy operator. At this copy, the swap-pointer is not copied.
In principle this is what is wanted; primitives are visualisation objects and
should only exist when the object actually gets visualized; thus it is okay that
the copy is not swapped. To make the swappig work again in principle it is just
necessary to flush the SdrGrafPrimitive2D and it's bufferd decomposition. The
primitives are also buffered at the ViewObjectContact (VOC), but as the name
says this only exists when a view is visualizing the object, so this is
automatically deleted.
That flushing can be done internally using
flushViewIndependentPrimitive2DSequence in the ViewContactOfGraphic
implementation; adding a method ViewContactOfGraphic::flushGraphicObjects() will
do that. A point to trigger this already exists in SdrGrafObj::ImpSwapHdl 
itself.

After doing this the swapping works as before. I also took a look at the swap-in
time for graphics. There is a mechanism in the ViewObjectContactOfGraphic which
allows asynch loading (using AsynchGraphicLoadingEvent which registers at the
view and is triggered using a timer). This is designed to show a replacement
graphic at first repaint, which at the event rigger, gets replaced and 
repainted.
That mechanism is currently broken since GraphicObject copy constructor triggers
the SwapIn hard; investigating how to avoid this...

---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to