Summary: | Frames are not redrawn when needed (typing up labels with identical frames) | ||
---|---|---|---|
Product: | kword | Reporter: | Sean Lynch <techniq35> |
Component: | general | Assignee: | Thomas Zander <zander> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Attachments: | Redraw problem |
Description
Sean Lynch
2003-07-03 09:32:45 UTC
Created attachment 1928 [details]
Redraw problem
Subject: koffice/kword CVS commit by faure: Fixed long-standing bug: wrong repainting in copied frames CCMAIL: 60678-done@bugs.kde.org M +7 -3 kwframe.cc 1.386 --- koffice/kword/kwframe.cc #1.385:1.386 @@ -1144,11 +1144,15 @@ void KWFrameSet::drawContents( QPainter //double lastRealFrameTop = 0; //double totalHeight = 0; // in pt, to avoid accumulating rounding errors - for ( ; frameIt.current(); ++frameIt ) + for ( ; frameIt.current(); ) { KWFrame *frame = frameIt.current(); + ++frameIt; // Point to the next one, to detect "last copy" // The settings come from this frame KWFrame * settingsFrame = ( frame->isCopy() && lastRealFrame ) ? lastRealFrame : frame; - - drawFrameAndBorders( frame, p, crect, cg, onlyChanged, resetChanged, edit, + bool lastCopy = !frameIt.current() || !frameIt.current()->isCopy(); + drawFrameAndBorders( frame, p, crect, cg, onlyChanged, + // Only reset the changed flag in the last copy of a given frame (#60678) + resetChanged && lastCopy, + edit, viewMode, settingsFrame, true /*transparency & double-buffering*/ ); if ( !lastRealFrame || !frame->isCopy() ) |