aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Style.cxx6
-rw-r--r--src/Style.h1
-rw-r--r--src/ViewStyle.cxx32
-rw-r--r--src/ViewStyle.h3
4 files changed, 24 insertions, 18 deletions
diff --git a/src/Style.cxx b/src/Style.cxx
index b86884aa5..25efcd6e8 100644
--- a/src/Style.cxx
+++ b/src/Style.cxx
@@ -24,6 +24,10 @@ FontAlias::~FontAlias() {
// ~Font will not release the actual font resource sine it is now 0
}
+void FontAlias::MakeAlias(Font &fontOrigin) {
+ SetID(fontOrigin.GetID());
+}
+
void FontAlias::ClearFont() {
SetID(0);
}
@@ -137,7 +141,7 @@ void Style::ClearTo(const Style &source) {
}
void Style::Copy(Font &font_, const FontMeasurements &fm_) {
- font.SetID(font_.GetID());
+ font.MakeAlias(font_);
(FontMeasurements &)(*this) = fm_;
#if PLAT_WX
ascent = surface.Ascent(font);
diff --git a/src/Style.h b/src/Style.h
index 460dad490..29122b0a4 100644
--- a/src/Style.h
+++ b/src/Style.h
@@ -38,6 +38,7 @@ class FontAlias : public Font {
public:
FontAlias();
virtual ~FontAlias();
+ void MakeAlias(Font &fontOrigin);
void ClearFont();
};
diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx
index 30911d3f5..24272789c 100644
--- a/src/ViewStyle.cxx
+++ b/src/ViewStyle.cxx
@@ -89,14 +89,14 @@ void FontRealised::Realise(Surface &surface, int zoomLevel) {
sizeZoomed = 2;
int deviceHeight = surface.DeviceHeightFont(sizeZoomed);
- Create(fontName, characterSet, deviceHeight, bold, italic, extraFontFlag);
-
- ascent = surface.Ascent(*this);
- descent = surface.Descent(*this);
- externalLeading = surface.ExternalLeading(*this);
- lineHeight = surface.Height(*this);
- aveCharWidth = surface.AverageCharWidth(*this);
- spaceWidth = surface.WidthChar(*this, ' ');
+ font.Create(fontName, characterSet, deviceHeight, bold, italic, extraFontFlag);
+
+ ascent = surface.Ascent(font);
+ descent = surface.Descent(font);
+ externalLeading = surface.ExternalLeading(font);
+ lineHeight = surface.Height(font);
+ aveCharWidth = surface.AverageCharWidth(font);
+ spaceWidth = surface.WidthChar(font, ' ');
if (frNext) {
frNext->Realise(surface, zoomLevel);
}
@@ -372,15 +372,15 @@ void ViewStyle::Refresh(Surface &surface) {
}
CreateFont(styles[STYLE_DEFAULT]);
- for (unsigned int i=0; i<stylesSize; i++) {
- CreateFont(styles[i]);
+ for (unsigned int j=0; j<stylesSize; j++) {
+ CreateFont(styles[j]);
}
frFirst->Realise(surface, zoomLevel);
- for (unsigned int i=0; i<stylesSize; i++) {
- FontRealised *fr = frFirst->Find(styles[i]);
- styles[i].Copy(*fr, *fr);
+ for (unsigned int k=0; k<stylesSize; k++) {
+ FontRealised *fr = frFirst->Find(styles[k]);
+ styles[k].Copy(fr->font, *fr);
}
maxAscent = 1;
maxDescent = 1;
@@ -391,11 +391,11 @@ void ViewStyle::Refresh(Surface &surface) {
someStylesProtected = false;
someStylesForceCase = false;
- for (unsigned int i=0; i<stylesSize; i++) {
- if (styles[i].IsProtected()) {
+ for (unsigned int l=0; l<stylesSize; l++) {
+ if (styles[l].IsProtected()) {
someStylesProtected = true;
}
- if (styles[i].caseForce != Style::caseMixed) {
+ if (styles[l].caseForce != Style::caseMixed) {
someStylesForceCase = true;
}
}
diff --git a/src/ViewStyle.h b/src/ViewStyle.h
index cf45be41f..74efa6abd 100644
--- a/src/ViewStyle.h
+++ b/src/ViewStyle.h
@@ -39,11 +39,12 @@ public:
const char *Save(const char *name);
};
-class FontRealised : public Font, public FontSpecification, public FontMeasurements {
+class FontRealised : public FontSpecification, public FontMeasurements {
// Private so FontRealised objects can not be copied
FontRealised(const FontRealised &);
FontRealised &operator=(const FontRealised &);
public:
+ Font font;
FontRealised *frNext;
FontRealised(const FontSpecification &fs);
virtual ~FontRealised();