[mythtv-commits] mythtv commit: r22560 - in trunk/mythtv/libs by cpinkham
mythtv at cvs.mythtv.org
mythtv at cvs.mythtv.org
Thu Oct 22 03:57:45 UTC 2009
Author: cpinkham
Date: 2009-10-22 03:57:44 +0000 (Thu, 22 Oct 2009)
New Revision: 22560
Changeset: http://cvs.mythtv.org/trac/changeset/22560
Modified:
trunk/mythtv/libs/libmythdb/mythversion.h
trunk/mythtv/libs/libmythui/mythmainwindow.cpp
trunk/mythtv/libs/libmythui/mythuitype.cpp
trunk/mythtv/libs/libmythui/mythuitype.h
Log:
Rework [22551] as discussed on IRC to fix an issue with widgets
potentially being redrawn twice if the dirty region was updated
between MythMainWindow::animate() and MythMainWindow::drawScreen().
When building the repaintRegion, animate() now resets the dirty widget's
m_NeedsRedraw flag. drawScreen() checks to see if the flag has been
reset between the time animate() was called and drawScreen was called
in the paint event. If a widget was updated, we check its dirty
region against the repaintRegion to see if we are already drawing the
dirty area anyway. If not, we abort drawScreen and let the next animate()
catch all the updates. We can't modify repaintRegion inside
drawScreen() because the QWidget's paint region can not be modified
inside the paint event. Also, QRegion::contains(QRect) returns true
if the QRect overlaps the QRect, the QRect does not have to be fully
within a QRect inside the QRegion. For this purpose, we have to do
a loop through the QRegion's QRects manually and use
QRect::contains(QRect) instead.
This does update the binary api version since libmythui is changed,
so make clean.
More information about the mythtv-commits
mailing list