Issue 93170 - page preview of documents containing form controls is corrupted
Summary: page preview of documents containing form controls is corrupted
Status: CLOSED FIXED
Alias: None
Product: Base
Classification: Application
Component: code (show other issues)
Version: OOO300m3
Hardware: All All
: P3 Trivial (vote)
Target Milestone: OOo 3.1
Assignee: wolframgarten
QA Contact: issues@dba
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2008-08-27 11:47 UTC by Frank Schönheit
Modified: 2009-02-17 12:59 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
document to reproduce the bug case (9.35 KB, application/vnd.oasis.opendocument.text)
2008-08-27 11:48 UTC, Frank Schönheit
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description Frank Schönheit 2008-08-27 11:47:12 UTC
- open the attached document, containing some controls
- File / Page Preview
=> in the page preview, the controls are properly painted inside the page,
   but right of the page, there are *additional* paintings of the controls,
   which should not be there
Comment 1 Frank Schönheit 2008-08-27 11:47:45 UTC
bug did not happen in OOo 2.4.1 => regression, to be fixed for 3.1
Comment 2 Frank Schönheit 2008-08-27 11:48:28 UTC
Created attachment 56041 [details]
document to reproduce the bug case
Comment 3 Frank Schönheit 2008-11-13 11:12:20 UTC
fs->aw: Thanks for volunteering to look into this. As we agreed, you're most
probably much faster than me in finding the problem.
Comment 4 Armin Le Grand 2008-12-15 13:09:03 UTC
AW: Problem here is how SW paints it's contents. It first uses to
ViewShell::_PaintDesktop paint the page backgrounds (the 'Wiese') in single
rectangles (leaving out the pages; probably a mechanism from before the buffered
non-blinking paint), and then the pages. For each page paint, a MapMode is set
and used in DLPrePaint2/DLPostPaint2, so for DrawingLayer for these regions all
is good.
The first one, _PaintDesktop, does not set any MapMode at all, thus the current
one is used to paint the DrawingLayer. Since this - in DLPostPaint2
automatically - also paints the FormLayer, the form controls are painted with
the wrong MapMode.
I have added an extensive description to ViewShell::_PaintDesktop and described
the current solution and all caveats. For now, i will introduce a flaf doe
ending DarwingLayer paint to force the FrmLayer not to be painted if wanted in
EndPaint mechanisms.
AW: Building from svx incompatible, getting all modules where EndDrawLayers is
used, changing all calls...
Comment 5 Armin Le Grand 2008-12-15 13:15:13 UTC
AW: Works as expected, fixed.
Comment 6 Armin Le Grand 2009-01-09 16:02:19 UTC
AW->WG: Please review. To check, open a SW, add a form control (Button), go to
PagePreview and zoom in and out. In old version, the button showed twice, once
'behind' the paper, once where it belongs.
Comment 7 wolframgarten 2009-01-12 14:07:19 UTC
Verified in CWS.
Comment 8 wolframgarten 2009-02-17 12:59:31 UTC
Tested in DEV300_m41. Closed.