From 03489a78662ea044a75cbd441af46a6dc9023fc4 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Wed, 8 Mar 2000 13:56:46 +0000 Subject: Made work on GTK+/Linux. --- src/Style.cxx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/Style.cxx') diff --git a/src/Style.cxx b/src/Style.cxx index 271d98fc2..120fd6e95 100644 --- a/src/Style.cxx +++ b/src/Style.cxx @@ -10,6 +10,7 @@ #include "Style.h" Style::Style() { + aliasOfDefaultFont = false; Clear(Colour(0,0,0), Colour(0xff,0xff,0xff), Platform::DefaultFontSize(), 0, false, false, false); @@ -18,11 +19,14 @@ Style::Style() { Style::~Style() { if (!aliasOfDefaultFont) font.Release(); + aliasOfDefaultFont = false; } Style &Style::operator=(const Style &source) { if (this == &source) return *this; + // Crash: + *(char *)0 = 1; Clear(Colour(0,0,0), Colour(0xff,0xff,0xff), Platform::DefaultFontSize(), 0, false, false, false); @@ -47,6 +51,8 @@ void Style::Clear(Colour fore_, Colour back_, int size_, const char *fontName_, eolFilled = eolFilled_; if (!aliasOfDefaultFont) font.Release(); + else + font.SetID(0); aliasOfDefaultFont = false; } @@ -68,7 +74,8 @@ void Style::Realise(Surface &surface, int zoomLevel, Style *defaultStyle) { int sizeZoomed = size + zoomLevel; if (sizeZoomed <= 2) // Hangs if sizeZoomed <= 1 sizeZoomed = 2; - + + font.Release(); int deviceHeight = (sizeZoomed * surface.LogPixelsY()) / 72; aliasOfDefaultFont = defaultStyle && EquivalentFontTo(defaultStyle); if (aliasOfDefaultFont) { -- cgit v1.2.3