diff options
Diffstat (limited to 'src/Style.cxx')
| -rw-r--r-- | src/Style.cxx | 19 | 
1 files changed, 13 insertions, 6 deletions
| diff --git a/src/Style.cxx b/src/Style.cxx index 75dc6eb93..3faca473f 100644 --- a/src/Style.cxx +++ b/src/Style.cxx @@ -10,14 +10,16 @@  #include "Style.h"  Style::Style() { -	aliasOfDefaultFont = false; +	aliasOfDefaultFont = true;  	Clear(Colour(0,0,0), Colour(0xff,0xff,0xff),  	        Platform::DefaultFontSize(), 0,  		false, false, false);  }  Style::~Style() { -	if (!aliasOfDefaultFont) +	if (aliasOfDefaultFont) +		font.SetID(0); +	else  		font.Release();  	aliasOfDefaultFont = false;  } @@ -46,10 +48,10 @@ void Style::Clear(Colour fore_, Colour back_, int size_, const char *fontName_,  	size = size_;  	fontName = fontName_;  	eolFilled = eolFilled_; -	if (!aliasOfDefaultFont) -		font.Release(); -	else  +	if (aliasOfDefaultFont)  		font.SetID(0); +	else  +		font.Release();  	aliasOfDefaultFont = false;  } @@ -72,13 +74,18 @@ void Style::Realise(Surface &surface, int zoomLevel, Style *defaultStyle) {  	if (sizeZoomed <= 2)	// Hangs if sizeZoomed <= 1  		sizeZoomed = 2; -	font.Release();		 +	if (aliasOfDefaultFont) +		font.SetID(0); +	else  +		font.Release();		  	int deviceHeight = (sizeZoomed * surface.LogPixelsY()) / 72;  	aliasOfDefaultFont = defaultStyle && EquivalentFontTo(defaultStyle);  	if (aliasOfDefaultFont) {  		font.SetID(defaultStyle->font.GetID());  	} else if (fontName) {  		font.Create(fontName, deviceHeight, bold, italic); +	} else { +		font.SetID(0);  	}  	ascent = surface.Ascent(font); | 
