From 90a4a40c237945d49d8aa3b0247a1fd8d6045619 Mon Sep 17 00:00:00 2001 From: jesus Date: Wed, 25 Jan 2017 14:57:04 +0000 Subject: [PATCH] LCL, Grids: fix focus rect painting issue #31268 git-svn-id: trunk@54000 - --- lcl/grids.pas | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/lcl/grids.pas b/lcl/grids.pas index 47b3100ff6..64e774e71b 100644 --- a/lcl/grids.pas +++ b/lcl/grids.pas @@ -1807,7 +1807,7 @@ type property OnValidateEntry; end; -procedure DrawRubberRect(Canvas: TCanvas; aRect: TRect; Color: TColor); +procedure DrawRubberRect(Canvas: TCanvas; aRect: TRect; Color: TColor; DrawBits:Byte=BF_RECT); function GetWorkingCanvas(const Canvas: TCanvas): TCanvas; procedure FreeWorkingCanvas(canvas: TCanvas); @@ -1993,7 +1993,10 @@ begin AFont.Style:= TFontStyles(cfg.GetValue(AKey + '/style/value', 0)); end; -procedure DrawRubberRect(Canvas: TCanvas; aRect: TRect; Color: TColor); +// Draws a dotted rectangle by drawing each enabled side. By default all sides are +// enabled. The DrawBits parameter set sides to drawn, it has this layout: xxxxBRTL +procedure DrawRubberRect(Canvas: TCanvas; aRect: TRect; Color: TColor; + DrawBits: Byte); procedure DrawVertLine(X1,Y1,Y2: integer); begin if Y2FixedCols) or (FGCache.TLColOff<>0)) then + DrawBits := DrawBits and not BF_LEFT; + DrawRubberRect(Canvas, aRect, FFocusColor, DrawBits); if FUseXORFeatures then begin Canvas.Pen.Mode := OldPenMode; Canvas.RestoreHandleState;