From 52bb9b2d33bcccaa4898d85d2b2cc551e39a8c56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Fri, 20 Feb 2004 21:10:41 +0000 Subject: [PATCH] Now takes B_DOCUMENT_WINDOW_LOOK properly into account. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6667 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/ScrollView.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/kits/interface/ScrollView.cpp b/src/kits/interface/ScrollView.cpp index c7ac933d8a..39a5afdd00 100644 --- a/src/kits/interface/ScrollView.cpp +++ b/src/kits/interface/ScrollView.cpp @@ -6,6 +6,7 @@ #include #include +#include static const float kFancyBorderSize = 2; @@ -143,6 +144,26 @@ void BScrollView::AttachedToWindow() { BView::AttachedToWindow(); + + if ((fHorizontalScrollBar == NULL && fVerticalScrollBar == NULL) + || (fHorizontalScrollBar != NULL && fVerticalScrollBar != NULL)) + return; + + // If we have only one bar, we need to check if we are in the + // bottom right edge of a window with the B_DOCUMENT_LOOK to + // adjust the size of the bar to acknowledge the resize knob. + + BRect bounds = ConvertToScreen(Bounds()); + BRect windowBounds = Window()->Frame(); + + if (bounds.right - BorderSize(fBorder) != windowBounds.right + || bounds.bottom - BorderSize(fBorder) != windowBounds.bottom) + return; + + if (fHorizontalScrollBar) + fHorizontalScrollBar->ResizeBy(-B_V_SCROLL_BAR_WIDTH, 0); + else if (fVerticalScrollBar) + fVerticalScrollBar->ResizeBy(0, -B_H_SCROLL_BAR_HEIGHT); }