To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=47679
User mba changed the following: What |Old value |New value ================================================================================ Assigned to|mav |tra -------------------------------------------------------------------------------- ------- Additional comments from [EMAIL PROTECTED] Wed May 25 00:49:16 -0700 2005 ------- My investigation revealed: we have two bugs here. The windows clipboard integration of OOo works in the way that an IDataObject implementation (XNotifyingDataObject) is created and handed over to the system clipboard. There the IDataObject is acquired so that it is kept alive after we remove our own reference to this object. As soon as another IDataObject is put into clipboard the last one is released. If a COM object embedded in a Writer document is put into clipboard everything happens as described above. If after this *anything else* is put into clipboard, the new object is *not* acquired by the system clipboard and so the internal object is destroyed. This is definitely a bug. This happens in all OOo apps, not only Writer (though we still take Writer as a reference here). But as already mentioned, there is another bug: the Writer clipboard implementation gets confused by the releasing of the Dataobject. If something inside a Writer document is put into clipboard the SW_MOD() keeps a pointer to the DataObject and all clipboard interaction use this "short circuit" (as can be seen in swdtflvr.cxx). This DataObject can be seen as the "current clipboard content". The pointer to this object is always set *before* the object is put into the system clipboard. This is important because when a Writer DataObject is released it checks wether it is the "current clipboard content" and in this case sets this pointer to NULL so that all clipboard interactions now use the system clipboard directly. If the new content is also from Writer this will not happen: the "current clipboard content" pointer was changed before the old object is released and so at release time it will recognize that it is not the "current clipboard content" and leave this pointer untouched. In case of the problem described above the new DataObject is errornously released when it is still the "current clipboard content", so after this Writer will use the system clipboard directly and not the internal DataObject. This alone shouldn't be a disaster, but for whatever reason this doesn't work (needs some additional investigation why). --------------------------------------------------------------------- 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]