To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=92801
User af changed the following: What |Old value |New value ================================================================================ Status|STARTED |RESOLVED -------------------------------------------------------------------------------- Resolution| |FIXED -------------------------------------------------------------------------------- ------- Additional comments from [EMAIL PROTECTED] Wed Aug 20 09:26:23 +0000 2008 ------- I decided to fix this bug by turning off the overlay mechanism during text edits because the foundation for this was already in the code: SdrPaintView::EndCompleteRedraw(.) already checks whether text is currently being edited and if so, it calls SdrPaintWindow::DrawOverlay(.) with bUseBuffer==false. This, however, had previously no effect when an overlay manager had already been created; buffering was not turned off. The fix modifies the SdrPaintWindow::impCreateOverlayManager(.) method that is called from SdrPaintWindow::DrawOverlay(.) so that the specified bUseBuffer flag is obeyed. When its value has changed since the last call then the current overlay manager is destroyed and a new one is created. The new overlay manager is buffered/not buffered according to the bUseBuffer flag (and the result of a call to SdrPaintView::IsBufferedOverlayAllowed()). Two things have to be noted regarding this exchange of overlay managers: 1) The overlay objects managed by the current overlay manager have to be moved to the new overlay manager. This is because their owner does not know of the exchange and can not be informed of it. We could run into problems with owners that remember the overlay manager at which they added their overlay objects. When the owners try to remove the objects the overlay manager does not exist anymore. This does not lead to a crash but the overlay objects would remain active. 2) Both overlay managers need an external invlidation of their output devices (the one to which they ultimately render their content, typically a visible window). The buffered overlay manager needs this to have its back buffer properly initialized. The unbuffered overlay manager needs it to trigger an initial paint of the overlay objects. This invalidation should not be necessary and be handled by the overlay managers themselves. Modified files are: /svx/inc/sdrpaintwindow.hxx rev. 1.6.210.1 /svx/inc/svx/sdr/overlay/overlaymanager.hxx rev. 1.4.208.1 /svx/source/sdr/overlay/overlaymanager.cxx rev. 1.6.208.1 /svx/source/svdraw/sdrpaintwindow.cxx rev. 1l8.210.1 --------------------------------------------------------------------- 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]