Index: table/qtable.cpp =================================================================== RCS file: /home/ich/cvs/TT/qt/src/table/qtable.cpp,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 qtable.cpp --- table/qtable.cpp 17 Aug 2003 14:22:32 -0000 1.1.1.1 +++ table/qtable.cpp 29 Aug 2003 13:59:56 -0000 @@ -500,7 +500,7 @@ if ( rw == -1 || cl == -1 ) return; - + int rrow = rw; int rcol = cl; if ( rowspan > 1 || colspan > 1 ) { @@ -1190,7 +1190,7 @@ if ( rowh == 0 ) continue; - + // Go through the columns in row r // if we know from where to where, go through [colfirst, collast], // else go through all of them @@ -1204,7 +1204,7 @@ if ( colw == 0 ) continue; - + QTableItem *itm = item( r, c ); if ( itm && ( itm->colSpan() > 1 || itm->rowSpan() > 1 ) ) { @@ -2345,6 +2345,7 @@ { if ( inUpdateGeometries ) return; + inUpdateGeometries = TRUE; QSize ts = tableSize(); if ( topHeader->offset() && @@ -2354,9 +2355,13 @@ ts.height() < leftHeader->offset() + leftHeader->height() ) verticalScrollBar()->setValue( ts.height() - leftHeader->height() ); - leftHeader->setGeometry( frameWidth(), topMargin() + frameWidth(), + /* + * for the scrollbar on the left side simply using framewidth is + * not enough cause this would overdraw the scrollbar + */ + leftHeader->setGeometry( frameWidth()+ frameRect().left(), topMargin() + frameWidth(), leftMargin(), visibleHeight() ); - topHeader->setGeometry( leftMargin() + frameWidth(), frameWidth(), + topHeader->setGeometry( leftMargin() + frameWidth() + frameRect().left(), frameWidth(), visibleWidth(), topMargin() ); inUpdateGeometries = FALSE; } Index: widgets/qscrollview.cpp =================================================================== RCS file: /home/ich/cvs/TT/qt/src/widgets/qscrollview.cpp,v retrieving revision 1.1.1.2 diff -u -r1.1.1.2 qscrollview.cpp --- widgets/qscrollview.cpp 17 Aug 2003 14:24:04 -0000 1.1.1.2 +++ widgets/qscrollview.cpp 29 Aug 2003 14:03:13 -0000 @@ -786,45 +786,56 @@ // Position the scrollbars, viewport, and corner widget. int bottom; +#ifdef QT_FOR_LEFT_HAND + static bool left = true; +#else + static bool left = false; +#endif + int xoffset = ( left && ( showv || cornerWidget() ) ) ? vsbExt : 0; + int xpos = left ? 0 : w-vsbExt; + xpos = (style() == WindowsStyle) && left ? xpos + fw : xpos - fw; + int ypos = tmarg; + ypos = (style() == WindowsStyle) ? ypos +fw : 0; if ( showh ) { int right = ( showv || cornerWidget() ) ? w-vsbExt : w; if ( style() == WindowsStyle ) - setHBarGeometry(d->hbar, fw, h-hsbExt-fw, + setHBarGeometry(d->hbar, fw + xoffset , h-hsbExt-fw, right-fw-fw, hsbExt ); else - setHBarGeometry(d->hbar, 0, h-hsbExt, right, + setHBarGeometry(d->hbar, 0+ xoffset, h-hsbExt, right, hsbExt ); bottom=h-hsbExt; } else { bottom=h; } if ( showv ) { - clipper()->setGeometry( lmarg, tmarg, + clipper()->setGeometry( lmarg + xoffset, tmarg, w-vsbExt-lmarg-rmarg, bottom-tmarg-bmarg ); d->viewportResized( w-vsbExt-lmarg-rmarg, bottom-tmarg-bmarg ); - if ( style() == WindowsStyle ) - changeFrameRect(QRect(0, 0, w, h) ); - else - changeFrameRect(QRect(0, 0, w-vsbExt, bottom)); + if ( style() == WindowsStyle ) { + changeFrameRect(QRect(xoffset, 0, w, h) ); + }else{ + changeFrameRect(QRect(xoffset, 0, w-vsbExt, bottom)); + } if (cornerWidget()) { if ( style() == WindowsStyle ) - setVBarGeometry( d->vbar, w-vsbExt-fw, - fw, vsbExt, - h-hsbExt-fw-fw ); + setVBarGeometry( d->vbar, xpos, + ypos, vsbExt, + bottom-fw-ypos ); else - setVBarGeometry( d->vbar, w-vsbExt, 0, + setVBarGeometry( d->vbar, xpos, ypos, vsbExt, - h-hsbExt ); + bottom-ypos ); } else { if ( style() == WindowsStyle ) - setVBarGeometry( d->vbar, w-vsbExt-fw, - fw, vsbExt, - bottom-fw-fw ); + setVBarGeometry( d->vbar, xpos, + ypos, vsbExt, + bottom-fw-ypos ); else - setVBarGeometry( d->vbar, w-vsbExt, 0, - vsbExt, bottom ); + setVBarGeometry( d->vbar, xpos, ypos, + vsbExt, bottom-ypos ); } } else { if ( style() == WindowsStyle ) @@ -837,12 +848,12 @@ } if ( d->corner ) { if ( style() == WindowsStyle ) - d->corner->setGeometry( w-vsbExt-fw, + d->corner->setGeometry( xpos, h-hsbExt-fw, vsbExt, hsbExt ); else - d->corner->setGeometry( w-vsbExt, + d->corner->setGeometry( xpos, h-hsbExt, vsbExt, hsbExt ); @@ -2058,12 +2069,12 @@ void QScrollView::changeFrameRect(const QRect& r) { QRect oldr = frameRect(); - if (oldr != r) { + if (oldr != r) { QRect cr = contentsRect(); QRegion fr( frameRect() ); fr = fr.subtract( contentsRect() ); setFrameRect( r ); - if ( isVisible() ) { + if ( isVisible() ) { cr = cr.intersect( contentsRect() ); fr = fr.unite( frameRect() ); fr = fr.subtract( cr );