https://issues.apache.org/ooo/show_bug.cgi?id=122453

--- Comment #6 from Andre <[email protected]> ---
The root cause of this bug seems to be a design or implementation flaw in sfx2.

The SfxDispatch::_FindServer() method does not find a slot server for the
position and size slots while the OLE object is active.  This seems to be OK. 
The strange thing here, that I still don't understand, is that there is no view
shell on the shell stack for the Chart OLE.  The DrawViewShell of Impress is
still the top most shell (level 0 on the shell stack.)  This should be ignored
when searching a slot server, otherwise the slots would be processed by
Impress, not by Chart.

The problem is that when the OLE is deactivated and
SfxViewShell::UIDeactivating() is called (note that DrawViewShell overrides
this method but calls the base implementation) the slot servers are not
invalidated.  This would be done with a call to
SfxStateCache::Invalidate(sal_True), but Invalidate() is only called with the
default sal_False argument.  The result was described in the last comment: the
slot server is not updated and therefore remains empty and the slots are not
processed.

A possible fix is a call to SfxBindings::InvalidateAll(sal_True) in
SfxViewShell::UIDeactivated() or DrawViewShell::Deactivated().

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to