aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Style.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Style.cxx')
-rw-r--r--src/Style.cxx19
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);