https://issues.apache.org/ooo/show_bug.cgi?id=122453
--- Comment #5 from Andre <[email protected]> --- On my way toward the root cause. Looks like the "Position and Size" panel works as designed. The problem lies deeper, somewhere between SdrObject notifying a model change and SfxStateCache not being properly updated. When the OLE object (or other shapes; after the OLE has been inserted the bug occurs with other non-OLE shapes as well) is moved or resized then as indirect result (triggered by sd::Window::MouseButtonUp()), DrawViewShell::ModelHasChanged() calls SfxShell::Invalidate(0) which invalidates all slots of the current shell. This should update both size and position in the panel. This fails in some cases when a slot's SfxStateCache has no SfxSlotServer attached to it. Now the strange thing. The SfxStateCache is only invalidated when there is a valid SfxSlotServer. This slot server is looked up only when the state cache is already dirty. But the state cache is only set to dirty when there is a valid slot server. Catch 22. I have made an experiment with looking up the slot server in SfxStateCache::GetSlotServer() even when the state cache is not dirty. This fixes the bug. But I would like to understand how this whole slot system is supposed to work. -- You are receiving this mail because: You are on the CC list for the bug.
