summaryrefslogtreecommitdiff
path: root/libopie2/opiemm
authoralwin <alwin>2004-04-21 10:47:31 (UTC)
committer alwin <alwin>2004-04-21 10:47:31 (UTC)
commit6902a2e25e93f2c2d472b89a35e19668dffd4866 (patch) (unidiff)
tree7512cf17ca49b420dd4e6c9758fcc846b5e8cd1a /libopie2/opiemm
parentf4ab243362a9b93f17e92bbf3189324f66c8f686 (diff)
downloadopie-6902a2e25e93f2c2d472b89a35e19668dffd4866.zip
opie-6902a2e25e93f2c2d472b89a35e19668dffd4866.tar.gz
opie-6902a2e25e93f2c2d472b89a35e19668dffd4866.tar.bz2
improved painting, eg., when clip area is outside image we must not
paint the image of course....
Diffstat (limited to 'libopie2/opiemm') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiemm/oimagescrollview.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/libopie2/opiemm/oimagescrollview.cpp b/libopie2/opiemm/oimagescrollview.cpp
index a8165a4..73df3ff 100644
--- a/libopie2/opiemm/oimagescrollview.cpp
+++ b/libopie2/opiemm/oimagescrollview.cpp
@@ -444,6 +444,7 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip
444 p->fillRect(clipx,clipy,clipw,cliph, backgroundColor()); 444 p->fillRect(clipx,clipy,clipw,cliph, backgroundColor());
445 return; 445 return;
446 } 446 }
447
447 if (w>_pdata.width()) { 448 if (w>_pdata.width()) {
448 w=_pdata.width(); 449 w=_pdata.width();
449 x = 0; 450 x = 0;
@@ -451,6 +452,7 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip
451 } else if (x+w>_pdata.width()){ 452 } else if (x+w>_pdata.width()){
452 x = _pdata.width()-w; 453 x = _pdata.width()-w;
453 } 454 }
455
454 if (h>_pdata.height()) { 456 if (h>_pdata.height()) {
455 h=_pdata.height(); 457 h=_pdata.height();
456 y = 0; 458 y = 0;
@@ -458,10 +460,23 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip
458 } else if (y+h>_pdata.height()){ 460 } else if (y+h>_pdata.height()){
459 y = _pdata.height()-h; 461 y = _pdata.height()-h;
460 } 462 }
461 if (erase||_original_data.hasAlphaBuffer()) { 463
464 if (erase||_original_data.hasAlphaBuffer()||clipy>_pdata.height()||clipx>_pdata.width()) {
465 odebug << QSize(clipx,clipy) << " # " << QSize(clipw,cliph) << oendl;
462 p->fillRect(clipx,clipy,clipw,cliph, backgroundColor()); 466 p->fillRect(clipx,clipy,clipw,cliph, backgroundColor());
463 } 467 }
464 p->drawPixmap(clipx,clipy,_pdata,x,y,w,h); 468 odebug << QSize(x,y) << " - " << QSize(w,h) << oendl;
469 if (clipy<=_pdata.height()&&clipx<=_pdata.width()) {
470#if 0
471 odebug << "painting image content" << oendl;
472#endif
473 p->drawPixmap(clipx,clipy,_pdata,x,y,w,h);
474 }
475#if 0
476else {
477 odebug << "not painting image content" << oendl;
478 }
479#endif
465} 480}
466 481
467/* using the real geometry points and not the translated points is wanted! */ 482/* using the real geometry points and not the translated points is wanted! */