To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=74816
User tl changed the following:
What |Old value |New value
================================================================================
CC|'ws' |'tl,ws'
--------------------------------------------------------------------------------
Assigned to|tl |aw
--------------------------------------------------------------------------------
Status|STARTED |NEW
--------------------------------------------------------------------------------
------- Additional comments from [email protected] Mon Mar 9 11:44:16 +0000
2009 -------
It works fine with chart OLE objects in Writer but not with starmath OLE objects
when one sets the color scheme to "High Contrast Black".
The reason is:
At the top in sw the function SwViewImp::PaintLayer is called and sets
DRAWMODE_SETTINGSFILL when changing into high contrast mode.
At the bottom in Writers function SwNoTxtFrm::PaintPicture the following lines
are called to get the high contrast replacement image
Graphic* pGraphic = NULL;
if ( pOut && ( pOut->GetDrawMode() & DRAWMODE_SETTINGSFILL ) )
pGraphic = pOLENd->GetHCGraphic();
This works fine with chart but not with starmath objects.
For chart the function is called with DRAWMODE_SETTINGSFILL set but that is not
the case for starmath.
The calltree for this function for startmath objects is different from the one
for chart objects even though both are OLE objects.
The difference occurs in the file objectcontactofpageview.cxx in svx within the
function ObjectContactOfPageView::DoProcessDisplay. Here the code looks like
this:
if(xPrimitiveSequence.hasElements())
{
...
if(pProcessor2D)
{
pProcessor2D->process(xPrimitiveSequence);
delete pProcessor2D;
}
}
For chart obejects the function pProcessor2D->process is called but not for math
objects since already xPrimitiveSequence.hasElements() returns false.
Thus for math objects the call to SwNoTxtFrm::PaintPicture does not occur within
the call hierachy of SwViewImp::PaintLayer but only after that function, and at
that point DRAWMODE_SETTINGSFILL has already been reset at the end of
SwViewImp::PaintLayer...
TL->AW: The question is since both objetcs are OLE Objects shouldn't they be
handled about the same way by the drawinglayer? That is this issue to be fixed
in the drawing layer or in sw?
It will be possible to do this in sw, but the available fix there may have more
global effects...
---------------------------------------------------------------------
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]