diff options
author | Graeme Geldenhuys <graeme@mastermaths.co.za> | 2010-08-06 17:05:02 +0200 |
---|---|---|
committer | Graeme Geldenhuys <graeme@mastermaths.co.za> | 2010-08-06 17:05:02 +0200 |
commit | 9d9a86d39d3f22ea6db81729c1efc60ef55e0b83 (patch) | |
tree | 224f36377dba31582f4e1145a29f471bdfe1b8b9 /docview/components | |
parent | b4613083657e721533f12dfc86a6dc2cb833bf71 (diff) | |
download | fpGUI-9d9a86d39d3f22ea6db81729c1efc60ef55e0b83.tar.xz |
docview: Fixed mono font screwup when scrolling large tables.
When scrolling pages that contain large tables of source code
examples using mono fonts, it changed no non-mono fonts. This
is now finally fixed!
Diffstat (limited to 'docview/components')
-rw-r--r-- | docview/components/richtext/CanvasFontManager.pas | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/docview/components/richtext/CanvasFontManager.pas b/docview/components/richtext/CanvasFontManager.pas index 8a15e914..7996c16d 100644 --- a/docview/components/richtext/CanvasFontManager.pas +++ b/docview/components/richtext/CanvasFontManager.pas @@ -924,11 +924,15 @@ var lDefaultFontSpec: TFontSpec; begin ProfileEvent('DEBUG: TCanvasFontManager.SetFont >>>>'); - if (FCurrentFontSpec.FaceName = FontSpec.FaceName) and - (FCurrentFontSpec.PointSize = FontSpec.PointSize) and - (FCurrentFontSpec.Attributes = FontSpec.Attributes) then - // same font - exit; + // we don't need this any more, because we check FCurrentFont <> Font further down + // We also make sure we always set Canvas.Font - this fixes large display of Grids or Sample Code in Courier New font + //if (FCurrentFontSpec.FaceName = FontSpec.FaceName) and + // (FCurrentFontSpec.PointSize = FontSpec.PointSize) and + // (FCurrentFontSpec.Attributes = FontSpec.Attributes) then + // //same font + //begin + // exit; + //end; Font := GetFont( FontSpec ); @@ -937,7 +941,7 @@ ProfileEvent('DEBUG: TCanvasFontManager.SetFont >>>>'); // ack! Pfffbt! Couldn't find the font. // Try to get the default font -// writeln('---------- here goes nothing -------------'); + //writeln('---------- here goes nothing -------------'); Font := GetFont( FDefaultFontSpec ); if Font = nil then begin @@ -948,7 +952,7 @@ ProfileEvent('DEBUG: TCanvasFontManager.SetFont >>>>'); FPGuiFontToFontSpec( fpgApplication.DefaultFont, lDefaultFontSpec ); Font := GetFont( lDefaultFontSpec ); if Font = nil then - // Jimminy! We can't even get the default system font + // WTF! We can't even get the default system font raise Exception.Create( 'Could not access default font ' + 'in place of ' + FontSpec.FaceName @@ -960,7 +964,8 @@ ProfileEvent('DEBUG: TCanvasFontManager.SetFont >>>>'); SelectFont( Font, 1 ); FCurrentFontSpec := FontSpec; - FCurrentFont.Free; + if FCurrentFont <> Font then + FCurrentFont.Free; FCurrentFont := Font; ProfileEvent('DEBUG: TCanvasFontManager.SetFont <<<<'); end; |