From kde-core-devel Mon Sep 26 03:22:31 2005 From: LiuCougar Date: Mon, 26 Sep 2005 03:22:31 +0000 To: kde-core-devel Subject: font handling bug in qt 4.0.1 Message-Id: <9558067805092520221223e3f2 () mail ! gmail ! com> X-MARC-Message: https://marc.info/?l=kde-core-devel&m=112770498313272 MIME-Version: 1 Content-Type: multipart/mixed; boundary="------=_Part_10817_2040052.1127704951250" ------=_Part_10817_2040052.1127704951250 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline *Short description: Fake oblique font does not work properly *What I did: Open qtconfig, in the font tab, select a font which does not have an italic style, select style oblique *What I expected to see: the "Sample Text" in the lineedit should be shown in style oblique *What I got instead: the "Sample Text" in the lineedit did not change style to oblique Attached is a patch to solve this issue, and also add support for "fake bold" as well (which is supported by freetype 2.1.10) Please someone review it? Regards, Cougar -- "People's characters are strengthened through struggle against difficulties; they are weakened by comfort." - Old Chinese adage ------=_Part_10817_2040052.1127704951250 Content-Type: application/octet-stream; name="oblique_bold.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="oblique_bold.patch" SW5kZXg6IHNyYy9ndWkvdGV4dC9xZm9udGVuZ2luZV94MTEuY3BwCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNy Yy9ndWkvdGV4dC9xZm9udGVuZ2luZV94MTEuY3BwCShyZXZpc2lvbiA0NjM4OTIpCisrKyBzcmMv Z3VpL3RleHQvcWZvbnRlbmdpbmVfeDExLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzks MTAgQEAKICNpbmNsdWRlICJxZm9udF9wLmgiCiAjaW5jbHVkZSAicWZvbnRlbmdpbmVfcC5oIgog I2luY2x1ZGUgInFvcGVudHlwZV9wLmgiCisjaWZkZWYgRlRfU1lOVEhFU0lTX0gKKyNkZWZpbmUg SEFWRV9GVF9HTFlQSFNMT1RfRU1CT0xERU4gMQorI2luY2x1ZGUgRlRfU1lOVEhFU0lTX0gKKyNl bmRpZgogI2luY2x1ZGUgPHFoYXNoLmg+CiAKICNpbmNsdWRlIDxwcml2YXRlL3FwYWludGVyX3Au aD4KQEAgLTU0Nyw2ICs1NTEsMTQgQEAKICAgICBpZiAoIWFudGlhbGlhcyB8fCBzdWJwaXhlbCA9 PSBGQ19SR0JBX1VOS05PV04pCiAgICAgICAgIHN1YnBpeGVsID0gRkNfUkdCQV9OT05FOwogCisj aWZkZWYgRkNfRU1CT0xERU4KKyAgICBpZiAoRmNQYXR0ZXJuR2V0Qm9vbCAocGF0dGVybiwKKyAg ICAgICAgICAgIEZDX0VNQk9MREVOLCAwLCAmYikgIT0gRmNSZXN1bHRNYXRjaCkKKyAgICAgICAg YiA9IEZjRmFsc2U7CisKKyAgICBlbWJvbGRlbiA9IGI7CisjZW5kaWYKKwogICAgIGlmICghbGli cmFyeSkKICAgICAgICAgRlRfSW5pdF9GcmVlVHlwZSgmbGlicmFyeSk7CiAKQEAgLTcyMCwxMSAr NzMyLDgzIEBACiAKICAgICBGVF9HbHlwaFNsb3Qgc2xvdCA9IGZhY2UtPmdseXBoOwogCisjaWYg SEFWRV9GVF9HTFlQSFNMT1RfRU1CT0xERU4KKyAgICBpZiAoZW1ib2xkZW4gJiYgKGZhY2UtPnN0 eWxlX2ZsYWdzICYgRlRfU1RZTEVfRkxBR19CT0xEKSA9PSAwKSB7CisgICAgICAgIEZUX0dseXBo U2xvdF9FbWJvbGRlbiAoc2xvdCk7CisgICAgfQorI2VuZGlmCisKICAgICBpbnQgbGVmdCAgPSBG TE9PUihzbG90LT5tZXRyaWNzLmhvcmlCZWFyaW5nWCk7CiAgICAgaW50IHJpZ2h0ID0gQ0VJTChz bG90LT5tZXRyaWNzLmhvcmlCZWFyaW5nWCArIHNsb3QtPm1ldHJpY3Mud2lkdGgpOwogICAgIGlu dCB0b3AgICAgPSBDRUlMKHNsb3QtPm1ldHJpY3MuaG9yaUJlYXJpbmdZKTsKICAgICBpbnQgYm90 dG9tID0gRkxPT1Ioc2xvdC0+bWV0cmljcy5ob3JpQmVhcmluZ1kgLSBzbG90LT5tZXRyaWNzLmhl aWdodCk7CiAKKyAgICBGY01hdHJpeCAqIG1hdHJpeF9idWlsdGluID0gMDsKKyAgICBGY1BhdHRl cm5HZXRNYXRyaXgoIF9wYXR0ZXJuLCBGQ19NQVRSSVgsIDAsICZtYXRyaXhfYnVpbHRpbiApOwor ICAgIGlmICggbWF0cml4X2J1aWx0aW4gKSB7CisgICAgICAgIEZUX01hdHJpeCBtYXQyOworICAg ICAgICBtYXQyLnh4ID0gKEZUX0ZpeGVkKSAoMHgxMDAwMEwgKiBtYXRyaXhfYnVpbHRpbi0+eHgp OworICAgICAgICBtYXQyLnl5ID0gKEZUX0ZpeGVkKSAoMHgxMDAwMEwgKiBtYXRyaXhfYnVpbHRp bi0+eXkpOworICAgICAgICBtYXQyLnl4ID0gKEZUX0ZpeGVkKSAoMHgxMDAwMEwgKiBtYXRyaXhf YnVpbHRpbi0+eXgpOworICAgICAgICBtYXQyLnh5ID0gKEZUX0ZpeGVkKSAoMHgxMDAwMEwgKiBt YXRyaXhfYnVpbHRpbi0+eHkpOworCisgICAgICAgIEZUX091dGxpbmVfVHJhbnNmb3JtKCZzbG90 LT5vdXRsaW5lLCAmbWF0Mik7CisKKyAgICAgICAgRlRfVmVjdG9yICAgICAgIHZlY3RvcjsKKwor ICAgICAgICAvKiBUaGUgbWF0cml4IHRyYW5zZm9ybWF0aW9uIG1heSBhbHRlciB0aGVzZSBmb3Vy IG1ldHJpY3MgYXR0cmlidXRlcyBhcyB3ZWxsLgorICAgICAgICAgKiBBcyB0aGlzIGlzIGEgY29u c3QgZnVuY3Rpb24sIGl0IGlzIGltcG9zc2libGUgdG8gb3ZlcndyaXRlIHRoZSBhdHRyaWJ1dGVz IGhlcmUsCisgICAgICAgICAqIHNvIHRoZXkgYXJlIGNvbW1lbnRlZCBvdXQuCisgICAgICAgICAq IEZvcnR1bmF0ZWx5LCBpbiB0aGUgbW9zdCBjb21tb24gY2FzZXMgKGZha2Ugb2JsaXF1ZSksIHRo ZXkgYXJlIG5vdCBtb2RpZmllZC4KKyAgICAgICAgICovCisgICAgICAgIC8qCisgICAgICAgIHZl Y3Rvci54ID0gMDsKKyAgICAgICAgdmVjdG9yLnkgPSBmYWNlLT5zaXplLT5tZXRyaWNzLmRlc2Nl bmRlcjsKKyAgICAgICAgRlRfVmVjdG9yX1RyYW5zZm9ybSAoJnZlY3RvciwgJm1hdDIpOworICAg ICAgICBzdGQ6OmNvdXQgPDwgbWV0cmljcy5kZXNjZW5kZXIgPDwgIiAiIDw8dmVjdG9yLnkgPDwg IiBtZXRyaWNzLmRlc2NlbmRlclxuIjsKKworICAgICAgICB2ZWN0b3IueCA9IDA7CisgICAgICAg IHZlY3Rvci55ID0gZmFjZS0+c2l6ZS0+bWV0cmljcy5hc2NlbmRlcjsKKyAgICAgICAgRlRfVmVj dG9yX1RyYW5zZm9ybSAoJnZlY3RvciwgJm1hdDIpOworICAgICAgICBzdGQ6OmNvdXQgPDwgbWV0 cmljcy5hc2NlbmRlcjw8ICIgIiA8PHZlY3Rvci55IDw8ICIgbWV0cmljcy5hc2NlbmRlclxuIjsK KworICAgICAgICB2ZWN0b3IueCA9IDA7CisgICAgICAgIHZlY3Rvci55ID0gZmFjZS0+c2l6ZS0+ bWV0cmljcy5oZWlnaHQ7CisgICAgICAgIEZUX1ZlY3Rvcl9UcmFuc2Zvcm0gKCZ2ZWN0b3IsICZt YXQyKTsKKyAgICAgICAgc3RkOjpjb3V0IDw8IG1ldHJpY3MuaGVpZ2h0PDwgIiAiIDw8dmVjdG9y LnkgPDwgIiBtZXRyaWNzLmhlaWdodFxuIjsKKworICAgICAgICAvL1RoaXMgaXMgZnVydGhlciBk ZXBlbmRlbnQgb24gRkNfQ0hBUl9XSURUSCAoc2VlIGxpYlhmdCkKKyAgICAgICAgdmVjdG9yLngg PSBmYWNlLT5zaXplLT5tZXRyaWNzLm1heF9hZHZhbmNlOworICAgICAgICB2ZWN0b3IueSA9IDA7 CisgICAgICAgIEZUX1ZlY3Rvcl9UcmFuc2Zvcm0gKCZ2ZWN0b3IsICZtYXQyKTsKKyAgICAgICAg c3RkOjpjb3V0IDw8IG1ldHJpY3MubWF4X2FkdmFuY2UgPDwgIiAiIDw8dmVjdG9yLnggPDwgIiBt ZXRyaWNzLm1heF9hZHZhbmNlXG4iOworICAgICAgICAqLworCisgICAgICAgIGludCB4YywgeWM7 CisgICAgICAgIGxlZnQgPSByaWdodCA9IHRvcCA9IGJvdHRvbSA9IDA7CisgICAgICAgIGZvcih4 YyA9IDA7IHhjIDw9IDE7IHhjICsrKSB7CisgICAgICAgICAgICBmb3IoeWMgPSAwOyB5YyA8PSAx OyB5YysrKSB7CisgICAgICAgICAgICAgICAgdmVjdG9yLnggPSBzbG90LT5tZXRyaWNzLmhvcmlC ZWFyaW5nWCArIHhjICogc2xvdC0+bWV0cmljcy53aWR0aDsKKyAgICAgICAgICAgICAgICB2ZWN0 b3IueSA9IHNsb3QtPm1ldHJpY3MuaG9yaUJlYXJpbmdZIC0geWMgKiBzbG90LT5tZXRyaWNzLmhl aWdodDsKKyAgICAgICAgICAgICAgICBGVF9WZWN0b3JfVHJhbnNmb3JtKCZ2ZWN0b3IsICZtYXQy KTsKKyAgICAgICAgICAgICAgICBpZih4YyA9PSAwICYmIHljID09IDApIHsKKyAgICAgICAgICAg ICAgICAgICAgbGVmdCA9IHJpZ2h0ID0gdmVjdG9yLng7CisgICAgICAgICAgICAgICAgICAgIHRv cCA9IGJvdHRvbSA9IHZlY3Rvci55OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICAgICAgICAgIGlmKGxlZnQgPiB2ZWN0b3IueCkgbGVmdCA9IHZlY3Rvci54OworICAgICAg ICAgICAgICAgICAgICBpZihyaWdodCA8IHZlY3Rvci54KSByaWdodCA9IHZlY3Rvci54OworICAg ICAgICAgICAgICAgICAgICBpZihib3R0b20gPiB2ZWN0b3IueSkgYm90dG9tID0gdmVjdG9yLnk7 CisgICAgICAgICAgICAgICAgICAgIGlmKHRvcCA8IHZlY3Rvci55KSB0b3AgPSB2ZWN0b3IueTsK KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBs ZWZ0ID0gRkxPT1IobGVmdCk7CisgICAgICAgIHJpZ2h0ID0gQ0VJTChyaWdodCk7CisgICAgICAg IGJvdHRvbSA9IEZMT09SKGJvdHRvbSk7CisgICAgICAgIHRvcCA9IENFSUwodG9wKTsKKyAgICB9 CisKICNpZm5kZWYgUVRfTk9fWFJFTkRFUgogICAgIFhHbHlwaEluZm8gaW5mbzsKICNlbHNlCkBA IC0xMTk5LDYgKzEyODMsMTIgQEAKICAgICAgICAgICAgIGlmIChnLT5mb3JtYXQgIT0gRlRfR0xZ UEhfRk9STUFUX09VVExJTkUpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKKyNpZiBIQVZF X0ZUX0dMWVBIU0xPVF9FTUJPTERFTgorICAgICAgICAgICAgaWYgKGVtYm9sZGVuICYmIChmYWNl LT5zdHlsZV9mbGFncyAmIEZUX1NUWUxFX0ZMQUdfQk9MRCkgPT0gMCkgeworICAgICAgICAgICAg ICAgIEZUX0dseXBoU2xvdF9FbWJvbGRlbiAoZyk7CisgICAgICAgICAgICB9CisjZW5kaWYKKwog ICAgICAgICAgICAgLy8gY29udmVydCB0aGUgb3V0bGluZSB0byBhIHBhaW50ZXIgcGF0aAogICAg ICAgICAgICAgaW50IGkgPSAwOwogICAgICAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBnLT5v dXRsaW5lLm5fY29udG91cnM7ICsrYykgewpJbmRleDogc3JjL2d1aS90ZXh0L3Fmb250ZW5naW5l X3gxMV9wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gc3JjL2d1aS90ZXh0L3Fmb250ZW5naW5lX3gxMV9wLmgJ KHJldmlzaW9uIDQ2Mzg5MikKKysrIHNyYy9ndWkvdGV4dC9xZm9udGVuZ2luZV94MTFfcC5oCSh3 b3JraW5nIGNvcHkpCkBAIC0xOTMsNiArMTkzLDkgQEAKICAgICBpbnQgeXNpemU7CiAgICAgYm9v bCBhbnRpYWxpYXM7CiAgICAgYm9vbCBvdXRsaW5lX2RyYXdpbmc7CisjaWZkZWYgRkNfRU1CT0xE RU4KKyAgICBib29sIGVtYm9sZGVuOworI2VuZGlmCiAgICAgaW50IHN1YnBpeGVsOwogCiBwdWJs aWM6CkluZGV4OiBzcmMvZ3VpL3RleHQvcWZvbnRkYXRhYmFzZV94MTEuY3BwCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHNyYy9ndWkvdGV4dC9xZm9udGRhdGFiYXNlX3gxMS5jcHAJKHJldmlzaW9uIDQ2Mzg5MikK KysrIHNyYy9ndWkvdGV4dC9xZm9udGRhdGFiYXNlX3gxMS5jcHAJKHdvcmtpbmcgY29weSkKQEAg LTEyNDAsOSArMTI0MCwyNSBAQAogCiAgICAgICAgICAgICAgICAgUXRGb250U3R5bGU6OktleSBr ZXkgPSBzdHlsZS0+a2V5OwogCisgICAgICAgICAgICAgICAgLy8gZG9lcyB0aGlzIHN0eWxlIGhh dmUgYSBib2xkIGVxdWl2YWxlbnQ/CisgICAgICAgICAgICAgICAga2V5LndlaWdodCA9IFFGb250 OjpCb2xkOworICAgICAgICAgICAgICAgIFF0Rm9udFN0eWxlICplcXVpdiA9IGZvdW5kcnktPnN0 eWxlKGtleSk7CisgICAgICAgICAgICAgICAgaWYgKCFlcXVpdikgeworICAgICAgICAgICAgICAg ICAgICAvLyBsZXQncyBmYWtlIG9uZS4uLgorICAgICAgICAgICAgICAgICAgICBlcXVpdiA9IGZv dW5kcnktPnN0eWxlKGtleSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGVxdWl2LT5zbW9v dGhTY2FsYWJsZSA9IHRydWU7CisKKyAgICAgICAgICAgICAgICAgICAgUXRGb250U2l6ZSAqZXF1 aXZfc2l6ZSA9IGVxdWl2LT5waXhlbFNpemUoU01PT1RIX1NDQUxBQkxFLCB0cnVlKTsKKyAgICAg ICAgICAgICAgICAgICAgUXRGb250RW5jb2RpbmcgKmVxdWl2X2VuYyA9IGVxdWl2X3NpemUtPmVu Y29kaW5nSUQoLTEsIDAsIDAsIDAsIDAsIHRydWUpOworCisgICAgICAgICAgICAgICAgICAgIC8v IGtlZXAgdGhlIHNhbWUgcGl0Y2gKKyAgICAgICAgICAgICAgICAgICAgZXF1aXZfZW5jLT5waXRj aCA9IGVuYy0+cGl0Y2g7CisJCSAgICBrZXkud2VpZ2h0ID0gUUZvbnQ6Ok5vcm1hbDsKKyAgICAg ICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICAvLyBkb2VzIHRoaXMgc3R5bGUgaGF2ZSBh biBpdGFsaWMgZXF1aXZhbGVudD8KICAgICAgICAgICAgICAgICBrZXkuc3R5bGUgPSBRRm9udDo6 U3R5bGVJdGFsaWM7Ci0gICAgICAgICAgICAgICAgUXRGb250U3R5bGUgKmVxdWl2ID0gZm91bmRy eS0+c3R5bGUoa2V5KTsKKyAgICAgICAgICAgICAgICBlcXVpdiA9IGZvdW5kcnktPnN0eWxlKGtl eSk7CiAgICAgICAgICAgICAgICAgaWYgKGVxdWl2KSBjb250aW51ZTsKIAogICAgICAgICAgICAg ICAgIC8vIGRvZXMgdGhpcyBzdHlsZSBoYXZlIGFuIG9ibGlxdWUgZXF1aXZhbGVudD8KQEAgLTE0 MjEsNyArMTQzNyw2IEBACiAKICAgICBGY1Jlc3VsdCByZXN1bHQ7CiAgICAgRmNGb250U2V0ICpm cyA9IEZjRm9udFNvcnQoMCwgcGF0dGVybiwgRmNUcnVlLCAwLCAmcmVzdWx0KTsKLSAgICBGY1Bh dHRlcm5EZXN0cm95KHBhdHRlcm4pOwogICAgIGlmICghZnMpCiAgICAgICAgIHJldHVybiAwOwog CkBAIC0xNTAxLDYgKzE1MTYsMTQgQEAKICAgICB9IGVsc2UgewogICAgICAgICAvLyBjcmVhdGUg YSBtdWx0aSBlbmdpbmUgZm9yIHRoZSBmb250c2V0IGZvbnRjb25maWcgZ2F2ZSB1cwogICAgICAg ICBGY0ZvbnRTZXQgKmZvbnRTZXQgPSBGY0ZvbnRTZXRDcmVhdGUoKTsKKyAgICAgICAgLy8gdGhl IG9yaWdpbmFsIHBhdHRlcm4gc2hvdWxkIGJlIGFkZGVkIHJhdGhlciB0aGFuIHRoZSByZXR1cm4K KyAgICAgICAgLy8gdmFsdWUgZnJvbSBGY0ZvbnRTb3J0LCBmb3IgYWRkUGF0dGVyblByb3BzIGNh biBub3QgYWRkCisgICAgICAgIC8vIGFsbCBuZWNlc3NhcnkgcGF0dGVybiBwcm9wczogc3VjaCBh cyB0aGUgTWF0cml4IHdoaWNoIGlzIAorICAgICAgICAvLyBlc3NlbnRpYWwgZm9yIHRoZSBmYWtl IG9ibGlxdWUgc3VwcG9ydCBhbmQgZW1ib2xkIHNldHRpbmdzCisgICAgICAgIC8vIHNwZWNpZmll ZCBpbiBmb250cy5jb25mCisgICAgICAgIEZjRm9udFNldEFkZChmb250U2V0LCBwYXR0ZXJuKTsK KyAgICAgICAgcGF0dGVybiA9IDA7CisjaWYgMAogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IGZzLT5uZm9udDsgKytpKSB7CiAgICAgICAgICAgICBGY1BhdHRlcm4gKnBhdHRlcm4gPSBGY1Bh dHRlcm5EdXBsaWNhdGUoZnMtPmZvbnRzW2ldKTsKICAgICAgICAgICAgIC8vIGFkZCBwcm9wZXJ0 aWVzIGJhY2sgaW4gYXMgdGhlIGZvbnQgc2VsZWN0ZWQgZnJvbSB0aGUKQEAgLTE1MDgsMTEgKzE1 MzEsMTQgQEAKICAgICAgICAgICAgIGFkZFBhdHRlcm5Qcm9wcyhwYXR0ZXJuLCBrZXksIGZhbHNl LCB0cnVlLCBmcCwgcmVxdWVzdCwgc2NyaXB0KTsKICAgICAgICAgICAgIEZjRm9udFNldEFkZChm b250U2V0LCBwYXR0ZXJuKTsKICAgICAgICAgfQorI2VuZGlmCiAKICAgICAgICAgZmUgPSBuZXcg UUZvbnRFbmdpbmVNdWx0aUZUKGZvbnRTZXQsIGZwLT5zY3JlZW4pOwogICAgICAgICBmZS0+Zm9u dERlZiA9IHJlcXVlc3Q7CiAgICAgfQogCisgICAgaWYocGF0dGVybikKKyAgICAgICAgRmNQYXR0 ZXJuRGVzdHJveShwYXR0ZXJuKTsKICAgICBGY0ZvbnRTZXREZXN0cm95KGZzKTsKICAgICByZXR1 cm4gZmU7CiB9Cg== ------=_Part_10817_2040052.1127704951250--