fix more glitches:

* invalidate the correct rect on WindowActivated() in case fDivider is not
  correclty maintained
* don't cut off part of the label in Draw() by constraining the clipping in
  case the placement of the label is a little different than intented


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22135 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2007-09-01 13:33:51 +00:00
parent a431f44be8
commit 2c5a88945e
+4 -5
View File
@@ -354,10 +354,9 @@ BTextControl::Draw(BRect updateRect)
break; break;
} }
BRect labelArea(x, fText->Frame().top, x + labelWidth, BRect labelArea(x, Bounds().top, x + labelWidth, Bounds().bottom);
ceilf(fontHeight.ascent + fontHeight.descent) + 1);
if (x < fDivider && updateRect.Intersects(labelArea)) { if (x < fDivider && updateRect.Intersects(labelArea)) {
labelArea.right = fDivider; labelArea.right = fText->Frame().left - 3;
BRegion clipRegion(labelArea); BRegion clipRegion(labelArea);
ConstrainClippingRegion(&clipRegion); ConstrainClippingRegion(&clipRegion);
@@ -606,8 +605,8 @@ BTextControl::WindowActivated(bool active)
{ {
if (fText->IsFocus()) { if (fText->IsFocus()) {
// invalidate to remove/show focus indication // invalidate to remove/show focus indication
BRect rect = Bounds(); BRect rect = fText->Frame();
rect.left = fDivider; rect.InsetBy(-1, -1);
Invalidate(rect); Invalidate(rect);
// help out embedded text view which doesn't // help out embedded text view which doesn't