Ticket #6118: fallback.patch

File fallback.patch, 5.1 KB (added by mt, 14 years ago)
  • WebKit/haiku/WebPositive/SettingsWindow.cpp

     
    4949#include "BrowserApp.h"
    5050#include "BrowsingHistory.h"
    5151#include "BrowserWindow.h"
     52#include "FontPlatformData.h"
    5253#include "FontSelectionView.h"
    5354#include "SettingsKeys.h"
    5455#include "SettingsMessage.h"
     
    639640    BWebSettings::Default()->SetDefaultStandardFontSize(standardFontSize);
    640641    BWebSettings::Default()->SetDefaultFixedFontSize(fixedFontSize);
    641642
     643    // Set FallBack fonts
     644    WebCore::FontPlatformData::SetFallBackSerifFont(fSerifFontView->Font());
     645    WebCore::FontPlatformData::SetFallBackSansSerifFont(fSansSerifFontView->Font());
     646    WebCore::FontPlatformData::SetFallBackFixedFont(fFixedFontView->Font());
     647    WebCore::FontPlatformData::SetFallBackFont(fStandardFontView->Font());
     648
    642649    if (fUseProxyCheckBox->Value() == B_CONTROL_ON) {
    643650        BWebSettings::Default()->SetProxyInfo(fProxyAddressControl->Text(),
    644651            proxyPort, B_PROXY_TYPE_HTTP, "", "");
  • WebCore/platform/graphics/haiku/FontPlatformData.h

     
    4646
    4747    ~FontPlatformData();
    4848
     49    static void SetFallBackSerifFont(const BFont& font);
     50    static void SetFallBackSansSerifFont(const BFont& font);
     51    static void SetFallBackFixedFont(const BFont& font);
     52    static void SetFallBackFont(const BFont& font);
     53
    4954    FontPlatformData& operator=(const FontPlatformData&);
    5055    bool operator==(const FontPlatformData&) const;
    5156
     
    6267    String description() const;
    6368
    6469private:
     70    static void findMatchingFontFamily(const AtomicString& familyName, font_family* fontFamily);
    6571    class FontPlatformDataPrivate;
    6672    FontPlatformDataPrivate* m_data;
     73
     74    static font_family m_FallbackSerifFontFamily;
     75    static font_family m_FallbackSansSerifFontFamily;
     76    static font_family m_FallbackFixedFontFamily;
     77    static font_family m_FallbackFontFamily;
     78   
    6779};
    6880
    6981} // namespace WebCore
  • WebCore/platform/graphics/haiku/FontPlatformDataHaiku.cpp

     
    2828#include <wtf/text/CString.h>
    2929
    3030namespace WebCore {
     31font_family FontPlatformData::m_FallbackSerifFontFamily= "DejaVu Sans";
     32font_family FontPlatformData::m_FallbackSansSerifFontFamily = "DejaVu Serif";
     33font_family FontPlatformData::m_FallbackFixedFontFamily = "DejaVu Mono";
     34font_family FontPlatformData::m_FallbackFontFamily = "DejaVu Serif";
    3135
    3236static inline bool isEmtpyValue(const float size, const bool bold, const bool oblique)
    3337{
     
    3539    return !bold && !oblique && size == 0;
    3640}
    3741
    38 static void findMatchingFontFamily(const AtomicString& familyName, font_family* fontFamily)
     42void
     43FontPlatformData::findMatchingFontFamily(const AtomicString& familyName, font_family* fontFamily)
    3944{
    4045    if (BFont().SetFamilyAndStyle(familyName.string().utf8().data(), 0) == B_OK)
    4146        strncpy(*fontFamily, familyName.string().utf8().data(), B_FONT_FAMILY_LENGTH + 1);
    4247    else {
    4348        // If no font family is found for the given name, we use a generic font.
    4449        if (familyName.contains("Sans", false) != B_ERROR)
    45             strncpy(*fontFamily, "DejaVu Sans", B_FONT_FAMILY_LENGTH + 1);
     50            strncpy(*fontFamily, m_FallbackSansSerifFontFamily, B_FONT_FAMILY_LENGTH + 1);
    4651        else if (familyName.contains("Serif", false) != B_ERROR)
    47             strncpy(*fontFamily, "DejaVu Serif", B_FONT_FAMILY_LENGTH + 1);
     52            strncpy(*fontFamily, m_FallbackSerifFontFamily, B_FONT_FAMILY_LENGTH + 1);
    4853        else if (familyName.contains("Mono", false) != B_ERROR)
    49             strncpy(*fontFamily, "DejaVu Mono", B_FONT_FAMILY_LENGTH + 1);
     54            strncpy(*fontFamily, m_FallbackFixedFontFamily, B_FONT_FAMILY_LENGTH + 1);
    5055        else {
    5156            // This is the fallback font.
    52             strncpy(*fontFamily, "DejaVu Serif", B_FONT_FAMILY_LENGTH + 1);
     57            strncpy(*fontFamily, m_FallbackFontFamily, B_FONT_FAMILY_LENGTH + 1);
    5358        }
    5459    }
    5560}
     
    307312    return String(fontFamily) + "/" + String(fontStyle) + String::format("/%.1f/%d&%d", size, isBold, isOblique);
    308313}
    309314
     315void
     316FontPlatformData::SetFallBackSerifFont(const BFont& font)
     317{
     318    font_style style;
     319    font.GetFamilyAndStyle(&m_FallbackSerifFontFamily, &style) ;
     320}
     321
     322void
     323FontPlatformData::SetFallBackSansSerifFont(const BFont& font)
     324{
     325    font_style style;
     326    font.GetFamilyAndStyle(&m_FallbackSansSerifFontFamily, &style) ;
     327}
     328
     329void
     330FontPlatformData::SetFallBackFixedFont(const BFont& font)
     331{
     332    font_style style;
     333    font.GetFamilyAndStyle(&m_FallbackFixedFontFamily, &style) ;
     334}
     335
     336void
     337FontPlatformData::SetFallBackFont(const BFont& font)
     338{
     339    font_style style;
     340    font.GetFamilyAndStyle(&m_FallbackFontFamily, &style) ;
     341}
     342
    310343} // namespace WebCore
    311344