Apache OpenOffice (AOO) Bugzilla – Issue 108052
Impress doc from 3.0 will not play in 3.1, Text with effect not shown
Last modified: 2017-05-20 10:30:52 UTC
Impress presentation created in 3.0 will not play animated slides in 3.1correctly. The presentation will play correctly in Impress 3.0, Power Point reader, and Easy Worship Presentation Software. The presentation was created in Impress 3.0 on an XP Windows PC. It was saved as a Power Point Doc. It consist of mostly a single text box on each slide with three or four lines of text. Each text is added with a click of the mouse as a whole object.
Created attachment 66961 [details] Impress Doc with animation that will play in 3.1
Reproducible with "Ooo 3.2.0 RC1 WIN XP DE-multilingual version German UI activated [OOo320m8 (Build 9472)]"! On second slide item "b" ("Sermon usually ends ..." will not be shown when playing presentation. Item is shown in MS PPT Viewer and with "2.4.1 Multilingual version English UI WIN XP: [680m17(Build9310)]" @kdvzhome2: Pls. attach Source .odp from 3.0! It would be useful if you could provide concrete information instead of a general "does not work correctly". Please contribute information to other problems if you saw them during your tests! Before you file further issues or post again here, please read our guidelines on <http://qa.openoffice.org/issue_handling/pre_submission.html> and <http://www.openoffice.org/bugs/bug_writing_guidelines.html>, then contribute a clear step by step instruction containing all observations (error messages ...), _every_key_press_and_every_mouse_click_ how to reproduce the problem, and explain why you believe that your results are unexpected. That means (for example): do not write something like „I am not able to ...“, but „6. left mouse click on … expected: …, color of … changes, … actual: no …., color remains white, no … Screenshots might help to explain the problem. Please always specify OS and Platform you used for your tests!
Reproducible. Reassigned.
@wg: What secret information do you have concerning reporters OOo version? ;-) I believe version OOo 3.1 RC2 from report was correct, because that's the same build as 3.1.1. I will set back Version because I can reproduce that problem with "Ooo 3.1.1 WIN XP DE[OOO310m19 (Build 9420)]"!
Sorry, no secret information ;-) I just set it to the newest version that I could reproduce it in. Mostly a developer tells me: "what? found in version 3.1? Sure it hasn't been fixed in the meantime?" I wanted to avoid this...
Looks like some internal data structure of the slide show is corrupted when the last effect on the first slide is played (in makeTreeNode() in slideshow/source/engine/shapes/drawshapesubsetting.hxx). Needs more investigation.
The problem mentioned above is due to an uninitialized iterator (when calculating the distance between two iterators, both have to point to the same container, which here they did not.) After fixing this I was able to reproduce the animation problem and find its cause. Only a solution is still elusive. The animation problem can be seen on slide 2 of the attached bugdoc. Text paragraphs are animated to be show one after the other. On this slide, however, not all paragraphs are shown. This is caused by the empty paragraphs in between. In the internal representation as drawing primitives these paragraphs are optimized away. This results in different indices for the remaining paragraphs then those used in the animation descriptions.
Created attachment 75846 [details] Proper initialization in DrawShapeSubsetting
@aw: Adding primitives and thus metafile actions for empty paragraphs would probably fix this bug. But maybe there is a better solution?
AW: I have a deva-vu here since I think this was already once coming up and had been fixed. After some debugging, I found the following line in impTextBreakupHandler::impFlushTextPortionPrimitivesToLinePrimitives(): // only create a line primitive when we had content; there is no need for // empty line primitives (contrary to paragraphs, see below). This was exactly the former fix. Thus, somehow this had been broken again. Base to have this working is that even for empty paragraphs, the DrawPortionHdl of the EditEngine has to be called. This is in impedit3.cxx in editengine module. Indeed, it gets no longer called with empty paragraphs because of this loop: for ( sal_uInt16 y = pLine->GetStartPortion(); y <= pLine->GetEndPortion(); y++ ) OTOH the above text shows that it was called in the past. Unfortunately the move from svx content to own project editengine has nit taken over the direct history. It now gets not called since in the following switch the text portion kind is of type PORTIONKIND_TAB. That type supports no callbacks at strip at all. I'm really curious what might have changed to break this functionality again...
AW: OOps, copied the wrong comment. Here is the correct one: // ALWAYS create a paragraph primitive, even when no content was added. This is done to // have the correct paragraph count even with empty paragraphs. Those paragraphs will // have an empty sub-PrimitiveSequence. Looking what might have changed in EditEngine...
Created attachment 76175 [details] AW: Supposed patch for this task
AW: Works, checked in, done.
AW->WG: Please review. Use the attached BugDor or alternatively create a presentation with a text frame with empty paragraphs (empty returns) and text animation.
Verified in CWS.