vcl/aqua/source/gdi/salnativewidgets.cxx | 63 ++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 9 deletions(-)
New commits: commit c64554aec5a90daa800dd3a70b777dca510c56dc Author: Tor Lillqvist <t...@iki.fi> Date: Wed Jul 24 23:27:06 2013 +0300 fdo#46271: No arrows in scrollbars in OS X 10.7 and later So no need to take them into account when calculating the geometries of the scrollbar parts. (cherry picked from commit e8c467d134c1c49d2b25c72fbd45dd1c6b77b171) Change-Id: Ie8d4b38107466663e6ff8c26aec3537638976f98 Reviewed-on: https://gerrit.libreoffice.org/5090 Reviewed-by: Fridrich Strba <fridr...@documentfoundation.org> Tested-by: Fridrich Strba <fridr...@documentfoundation.org> diff --git a/vcl/aqua/source/gdi/salnativewidgets.cxx b/vcl/aqua/source/gdi/salnativewidgets.cxx index 3de4118..f52775b 100644 --- a/vcl/aqua/source/gdi/salnativewidgets.cxx +++ b/vcl/aqua/source/gdi/salnativewidgets.cxx @@ -135,26 +135,56 @@ static bool AquaGetScrollRect( /* TODO: int nScreen, */ ControlPart nPart, switch( nPart ) { case PART_BUTTON_UP: - if( GetSalData()->mbIsScrollbarDoubleMax ) - rResultRect.Top() = rControlRect.Bottom() - 2*BUTTON_HEIGHT; - rResultRect.Bottom() = rResultRect.Top() + BUTTON_HEIGHT; + if (NSAppKitVersionNumber < NSAppKitVersionNumber10_7) + { + if( GetSalData()->mbIsScrollbarDoubleMax ) + rResultRect.Top() = rControlRect.Bottom() - 2*BUTTON_HEIGHT; + rResultRect.Bottom() = rResultRect.Top() + BUTTON_HEIGHT; + } + else + { + rResultRect.Bottom() = rResultRect.Top(); + } break; case PART_BUTTON_DOWN: - rResultRect.Top() = rControlRect.Bottom() - BUTTON_HEIGHT; + if (NSAppKitVersionNumber < NSAppKitVersionNumber10_7) + { + rResultRect.Top() = rControlRect.Bottom() - BUTTON_HEIGHT; + } + else + { + rResultRect.Top() = rResultRect.Bottom(); + } break; case PART_BUTTON_LEFT: - if( GetSalData()->mbIsScrollbarDoubleMax ) - rResultRect.Left() = rControlRect.Right() - 2*BUTTON_WIDTH; - rResultRect.Right() = rResultRect.Left() + BUTTON_WIDTH; + if (NSAppKitVersionNumber < NSAppKitVersionNumber10_7) + { + if( GetSalData()->mbIsScrollbarDoubleMax ) + rResultRect.Left() = rControlRect.Right() - 2*BUTTON_WIDTH; + rResultRect.Right() = rResultRect.Left() + BUTTON_WIDTH; + } + else + { + rResultRect.Right() = rResultRect.Left(); + } break; case PART_BUTTON_RIGHT: - rResultRect.Left() = rControlRect.Right() - BUTTON_WIDTH; + if (NSAppKitVersionNumber < NSAppKitVersionNumber10_7) + { + rResultRect.Left() = rControlRect.Right() - BUTTON_WIDTH; + } + else + { + rResultRect.Left() = rResultRect.Right(); + } break; case PART_TRACK_HORZ_AREA: + if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_7) + break; rResultRect.Right() -= BUTTON_WIDTH + 1; if( GetSalData()->mbIsScrollbarDoubleMax ) rResultRect.Right() -= BUTTON_WIDTH; @@ -163,6 +193,8 @@ static bool AquaGetScrollRect( /* TODO: int nScreen, */ ControlPart nPart, break; case PART_TRACK_VERT_AREA: + if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_7) + break; rResultRect.Bottom() -= BUTTON_HEIGHT + 1; if( GetSalData()->mbIsScrollbarDoubleMax ) rResultRect.Bottom() -= BUTTON_HEIGHT; @@ -170,6 +202,8 @@ static bool AquaGetScrollRect( /* TODO: int nScreen, */ ControlPart nPart, rResultRect.Top() += BUTTON_HEIGHT + 1; break; case PART_THUMB_HORZ: + if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_7) + break; if( GetSalData()->mbIsScrollbarDoubleMax ) { rResultRect.Left() += 8; @@ -182,6 +216,8 @@ static bool AquaGetScrollRect( /* TODO: int nScreen, */ ControlPart nPart, } break; case PART_THUMB_VERT: + if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_7) + break; if( GetSalData()->mbIsScrollbarDoubleMax ) { rResultRect.Top() += 8; @@ -194,24 +230,32 @@ static bool AquaGetScrollRect( /* TODO: int nScreen, */ ControlPart nPart, } break; case PART_TRACK_HORZ_LEFT: + if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_7) + break; if( GetSalData()->mbIsScrollbarDoubleMax ) rResultRect.Right() += 8; else rResultRect.Right() += 4; break; case PART_TRACK_HORZ_RIGHT: + if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_7) + break; if( GetSalData()->mbIsScrollbarDoubleMax ) rResultRect.Left() += 6; else rResultRect.Left() += 4; break; case PART_TRACK_VERT_UPPER: + if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_7) + break; if( GetSalData()->mbIsScrollbarDoubleMax ) rResultRect.Bottom() += 8; else rResultRect.Bottom() += 4; break; case PART_TRACK_VERT_LOWER: + if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_7) + break; if( GetSalData()->mbIsScrollbarDoubleMax ) rResultRect.Top() += 8; else @@ -373,7 +417,8 @@ sal_Bool AquaSalGraphics::hitTestNativeControl( ControlType nType, ControlPart n Rectangle aRect; bool bValid = AquaGetScrollRect( /* TODO: m_nScreen */ nPart, rControlRegion, aRect ); rIsInside = bValid ? aRect.IsInside( rPos ) : sal_False; - if( GetSalData()->mbIsScrollbarDoubleMax ) + if( NSAppKitVersionNumber < NSAppKitVersionNumber10_7 && + GetSalData()->mbIsScrollbarDoubleMax ) { // in double max mode the actual trough is a little smaller than the track // there is some visual filler that is not sensitive _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits