summaryrefslogtreecommitdiffabout
path: root/korganizer/koagendaitem.cpp
authorzautrix <zautrix>2005-03-23 11:47:33 (UTC)
committer zautrix <zautrix>2005-03-23 11:47:33 (UTC)
commit913291ec9784520cc6ff9769081c03bd74a5ab07 (patch) (side-by-side diff)
treeabc324e407ea03c312511f83d735b6039d9b36bb /korganizer/koagendaitem.cpp
parentc99ce87456abd342befc7820d3e1376f9560183a (diff)
downloadkdepimpi-913291ec9784520cc6ff9769081c03bd74a5ab07.zip
kdepimpi-913291ec9784520cc6ff9769081c03bd74a5ab07.tar.gz
kdepimpi-913291ec9784520cc6ff9769081c03bd74a5ab07.tar.bz2
koa item resize crash fix
Diffstat (limited to 'korganizer/koagendaitem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagendaitem.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp
index 5ee433a..7e6fa48 100644
--- a/korganizer/koagendaitem.cpp
+++ b/korganizer/koagendaitem.cpp
@@ -470,6 +470,7 @@ void KOAgendaItem::paintEvent ( QPaintEvent *e )
else
yy = mCellYTop * ( height() / cellHeight() );
int xx = x();
+
if ( xPaintCoord != xx || yPaintCoord != yy ||
wPaintCoord != width() || hPaintCoord != height()) {
xPaintCoord= xx;
@@ -497,7 +498,26 @@ void KOAgendaItem::paintEvent ( QPaintEvent *e )
else
paintFrom = paintPix();
}
- bitBlt (this, rx, ry, paintFrom, x()+rx ,yPaintCoord+ry, rw, rh ,CopyROP);
+ xx += rx;
+
+ if ( xx < 0 ) {
+ rw = rw + xx;
+ rx -= xx;
+ xx = 0;
+ if ( rw < 0 ) {
+ qDebug("KOAgendaItem::Width1 < 0. Returning ");
+ return;
+ }
+ }
+ if ( paintFrom->width() < xx+rw ) {
+ rw = paintFrom->width() - xx;
+ if ( rw < 0 ) {
+ qDebug("KOAgendaItem::Width2 < 0. Returning ");
+ return;
+ }
+ }
+ //qDebug("%d %d %d %d %d %d %d",rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh);
+ bitBlt (this, rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh ,CopyROP);
}
void KOAgendaItem::computeText()
{