diff --git a/headers/os/interface/Font.h b/headers/os/interface/Font.h index cb213a0aba..796f1677e9 100644 --- a/headers/os/interface/Font.h +++ b/headers/os/interface/Font.h @@ -247,7 +247,7 @@ class BFont { mutable uint32 fExtraFlags; uint32 _reserved[2]; - status_t _GetExtraFlags() const; + void _GetExtraFlags() const; void _GetBoundingBoxes(const char charArray[], int32 numChars, font_metric_mode mode, bool string_escapement, escapement_delta *delta, diff --git a/src/kits/interface/Font.cpp b/src/kits/interface/Font.cpp index dcc0dc5d36..562ba174fd 100644 --- a/src/kits/interface/Font.cpp +++ b/src/kits/interface/Font.cpp @@ -585,9 +585,7 @@ BFont::Flags() const font_direction BFont::Direction() const { - if (_GetExtraFlags() != B_OK) - return B_FONT_LEFT_TO_RIGHT; - + _GetExtraFlags(); return (font_direction)(fExtraFlags >> B_PRIVATE_FONT_DIRECTION_SHIFT); } @@ -1170,12 +1168,12 @@ BFont::PrintToStream() const } -status_t +void BFont::_GetExtraFlags() const { // TODO: this has to be const in order to allow other font getters to stay const as well if (fExtraFlags != kUninitializedExtraFlags) - return B_OK; + return; BPrivate::AppServerLink link; link.StartMessage(AS_GET_EXTRA_FONT_FLAGS); @@ -1184,9 +1182,11 @@ BFont::_GetExtraFlags() const status_t status = B_ERROR; if (link.FlushWithReply(status) != B_OK - || status != B_OK) - return status; + || status != B_OK) { + // use defaut values for the flags + fExtraFlags = (uint32)B_FONT_LEFT_TO_RIGHT << B_PRIVATE_FONT_DIRECTION_SHIFT; + return; + } link.Read(&fExtraFlags); - return B_OK; }