| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2006, 2007 Apple Inc. All Rights Reserved. | 2  * Copyright (C) 2006, 2007 Apple Inc. All Rights Reserved. | 
| 3  * Copyright (c) 2008, 2009, Google Inc. All rights reserved. | 3  * Copyright (c) 2008, 2009, Google Inc. All rights reserved. | 
| 4  * | 4  * | 
| 5  * Redistribution and use in source and binary forms, with or without | 5  * Redistribution and use in source and binary forms, with or without | 
| 6  * modification, are permitted provided that the following conditions are | 6  * modification, are permitted provided that the following conditions are | 
| 7  * met: | 7  * met: | 
| 8  * | 8  * | 
| 9  *     * Redistributions of source code must retain the above copyright | 9  *     * Redistributions of source code must retain the above copyright | 
| 10  * notice, this list of conditions and the following disclaimer. | 10  * notice, this list of conditions and the following disclaimer. | 
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 120 | 120 | 
| 121 bool SimpleFontData::containsCharacters(const UChar* characters, int length) con
     st | 121 bool SimpleFontData::containsCharacters(const UChar* characters, int length) con
     st | 
| 122 { | 122 { | 
| 123   // This used to be implemented with IMLangFontLink2, but since that code has | 123   // This used to be implemented with IMLangFontLink2, but since that code has | 
| 124   // been disabled, this would always return false anyway. | 124   // been disabled, this would always return false anyway. | 
| 125   return false; | 125   return false; | 
| 126 } | 126 } | 
| 127 | 127 | 
| 128 void SimpleFontData::determinePitch() | 128 void SimpleFontData::determinePitch() | 
| 129 { | 129 { | 
| 130     // TEXTMETRICS have this.  Set m_treatAsFixedPitch based off that. | 130     m_treatAsFixedPitch = platformData().isFixedPitch(); | 
| 131     HWndDC dc(0); |  | 
| 132     HGDIOBJ oldFont = SelectObject(dc, m_platformData.hfont()); |  | 
| 133 |  | 
| 134     // Yes, this looks backwards, but the fixed pitch bit is actually set if the
      font |  | 
| 135     // is *not* fixed pitch.  Unbelievable but true. |  | 
| 136     TEXTMETRIC textMetric = {0}; |  | 
| 137     if (!GetTextMetrics(dc, &textMetric)) { |  | 
| 138         if (FontPlatformData::ensureFontLoaded(m_platformData.hfont())) { |  | 
| 139             // Retry GetTextMetrics. |  | 
| 140             // FIXME: Handle gracefully the error if this call also fails. |  | 
| 141             // See http://crbug.com/6401. |  | 
| 142             if (!GetTextMetrics(dc, &textMetric)) |  | 
| 143                 LOG_ERROR("Unable to get the text metrics after second attempt")
     ; |  | 
| 144         } |  | 
| 145     } |  | 
| 146 |  | 
| 147     m_treatAsFixedPitch = ((textMetric.tmPitchAndFamily & TMPF_FIXED_PITCH) == 0
     ); |  | 
| 148 |  | 
| 149     SelectObject(dc, oldFont); |  | 
| 150 } | 131 } | 
| 151 | 132 | 
| 152 FloatRect SimpleFontData::platformBoundsForGlyph(Glyph glyph) const | 133 FloatRect SimpleFontData::platformBoundsForGlyph(Glyph glyph) const | 
| 153 { | 134 { | 
| 154     HWndDC hdc(0); | 135     HWndDC hdc(0); | 
| 155     SetGraphicsMode(hdc, GM_ADVANCED); | 136     SetGraphicsMode(hdc, GM_ADVANCED); | 
| 156     HGDIOBJ oldFont = SelectObject(hdc, m_platformData.hfont()); | 137     HGDIOBJ oldFont = SelectObject(hdc, m_platformData.hfont()); | 
| 157 | 138 | 
| 158     GLYPHMETRICS gdiMetrics; | 139     GLYPHMETRICS gdiMetrics; | 
| 159     static const MAT2 identity = { 0, 1,  0, 0,  0, 0,  0, 1 }; | 140     static const MAT2 identity = { 0, 1,  0, 0,  0, 0,  0, 1 }; | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 191                 LOG_ERROR("Unable to get the char width after second attempt"); | 172                 LOG_ERROR("Unable to get the char width after second attempt"); | 
| 192         } | 173         } | 
| 193     } | 174     } | 
| 194 | 175 | 
| 195     SelectObject(dc, oldFont); | 176     SelectObject(dc, oldFont); | 
| 196 | 177 | 
| 197     return static_cast<float>(width); | 178     return static_cast<float>(width); | 
| 198 } | 179 } | 
| 199 | 180 | 
| 200 }  // namespace WebCore | 181 }  // namespace WebCore | 
| OLD | NEW | 
|---|