Re: Scintilla GTK 4 port
Neil Hodgson <[email protected]> Tue, 9 Dec 2025 11:59:05 +1100
| Newsgroups | gmane.comp.lib.scintilla.devel |
|---|---|
| Message-ID | <CACWkrTgreLH_Uog9+1dgkqD8McvstJq2jeFMm1YTqK=Uw6WojA@mail.gmail.com> |
--000000000000cc988c06457a6bef Content-Type: text/plain; charset="UTF-8" Here is a patch to implement clearing the view to a base colour early in drawing so that seams will be less prominent with fractional scaling. It is set as an element (SC_ELEMENT_BASE_BACKGROUND) which allows platform layers to set a default and track system modes (like dark mode). It doesn't prevent all seams and works best when there is a common background colour set for each style which is the same as SC_ELEMENT_BASE_BACKGROUND. This does not try to avoid drawing again in the same colour for text run backgrounds. That would require many more changes as the background is drawn separately by different feature implementations. What should be checked here is that the new code is in the right place to ensure better behaviour while not also causing background colour flashing or other problems. Neil -- You received this message because you are subscribed to the Google Groups "scintilla-interest" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/scintilla-interest/CACWkrTgreLH_Uog9%2B1dgkqD8McvstJq2jeFMm1YTqK%3DUw6WojA%40mail.gmail.com. --000000000000cc988c06457a6bef Content-Type: text/plain; charset="US-ASCII"; name="BaseBackground.patch" Content-Disposition: attachment; filename="BaseBackground.patch" Content-Transfer-Encoding: base64 Content-ID: <f_mixvgueb0> X-Attachment-Id: f_mixvgueb0 ZGlmZiAtciBhYzZhMmQzNzlmMjUgZG9jL1NjaW50aWxsYURvYy5odG1sCi0tLSBhL2RvYy9TY2lu dGlsbGFEb2MuaHRtbAlNb24gRGVjIDA4IDE0OjM4OjA3IDIwMjUgKzExMDAKKysrIGIvZG9jL1Nj aW50aWxsYURvYy5odG1sCVR1ZSBEZWMgMDkgMTE6NDQ6MDEgMjAyNSArMTEwMApAQCAtMzkxMSw2 ICszOTExLDEyIEBACiAgICAgIG9uIENvY29hLCBzZWxlY3Rpb24gYmFja2dyb3VuZCBjb2xvdXJz IGxpa2UgPGNvZGU+U0NfRUxFTUVOVF9TRUxFQ1RJT05fQkFDSzwvY29kZT4gYXJlIHByb3ZpZGVk LgogICAgICA8L3A+CiAKKyAgICAgPHA+T3B0aW9uYWwgPGNvZGU+U0NfRUxFTUVOVF9CQVNFX0JB Q0tHUk9VTkQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIGRlY3JlYXNlIHZpc2libGUgc2VhbXMgaW4K KyAgICAgYmFja2dyb3VuZCBjb2xvdXJzIG9uIHNvbWUgcGxhdGZvcm1zIHdpdGggZnJhY3Rpb25h bCBzY2FsaW5nLgorICAgICBJdCB3aWxsIG5vdCBwcmV2ZW50IGFsbCBzZWFtcyBhbmQgaXMgbW9z dCBlZmZlY3RpdmUgd2hlbiB0aGVyZSBpcyBhIGNvbW1vbiBiYWNrZ3JvdW5kIGNvbG91ci4KKyAg ICAgSXRzIGJlaGF2aW91ciBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCisgICAgIDwvcD4KKwogICAg ICA8dGFibGUgY2xhc3M9InN0YW5kYXJkIiBzdW1tYXJ5PSJFbGVtZW50cyI+CiAgICAgICA8dGhl YWQgYWxpZ249ImxlZnQiPgogICAgICAgICA8dHI+CkBAIC00MTEyLDYgKzQxMTgsMTQgQEAKICAg ICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgIDx0ZD5Db2xvdXIgb2YgbGluZSBkcmF3biB0 byBzaG93IHRoZXJlIGFyZSBsaW5lcyBoaWRkZW4gYXQgdGhhdCBwb2ludDwvdGQ+CiAgICAgICAg ICA8L3RyPgorICAgICAgICAgPHRyPgorICAgICAgICAgICA8dGggYWxpZ249ImxlZnQiPjxjb2Rl PlNDX0VMRU1FTlRfQkFTRV9CQUNLR1JPVU5EPC9jb2RlPjwvdGg+CisgICAgICAgICAgIDx0ZD45 MDwvdGQ+CisgICAgICAgICAgIDx0ZD5PcGFxdWU8L3RkPgorICAgICAgICAgICA8dGQ+QWxsPC90 ZD4KKyAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgIDx0ZD5Db2xvdXIgdGhhdCB3aWxs IG9wdGlvbmFsbHkgYmUgdXNlZCB0byBjbGVhciB2aWV3IGJlZm9yZSBvdGhlciBkcmF3aW5nPC90 ZD4KKyAgICAgICAgIDwvdHI+CiAgICAgICAgPC90Ym9keT4KICAgICAgPC90YWJsZT4KIApkaWZm IC1yIGFjNmEyZDM3OWYyNSBpbmNsdWRlL1NjaW50aWxsYS5oCi0tLSBhL2luY2x1ZGUvU2NpbnRp bGxhLmgJTW9uIERlYyAwOCAxNDozODowNyAyMDI1ICsxMTAwCisrKyBiL2luY2x1ZGUvU2NpbnRp bGxhLmgJVHVlIERlYyAwOSAxMTo0NDowMSAyMDI1ICsxMTAwCkBAIC0zMTgsNiArMzE4LDcgQEAK ICNkZWZpbmUgU0NfRUxFTUVOVF9IT1RfU1BPVF9BQ1RJVkVfQkFDSyA3MQogI2RlZmluZSBTQ19F TEVNRU5UX0ZPTERfTElORSA4MAogI2RlZmluZSBTQ19FTEVNRU5UX0hJRERFTl9MSU5FIDgxCisj ZGVmaW5lIFNDX0VMRU1FTlRfQkFTRV9CQUNLR1JPVU5EIDkwCiAjZGVmaW5lIFNDSV9TRVRFTEVN RU5UQ09MT1VSIDI3NTMKICNkZWZpbmUgU0NJX0dFVEVMRU1FTlRDT0xPVVIgMjc1NAogI2RlZmlu ZSBTQ0lfUkVTRVRFTEVNRU5UQ09MT1VSIDI3NTUKZGlmZiAtciBhYzZhMmQzNzlmMjUgaW5jbHVk ZS9TY2ludGlsbGEuaWZhY2UKLS0tIGEvaW5jbHVkZS9TY2ludGlsbGEuaWZhY2UJTW9uIERlYyAw OCAxNDozODowNyAyMDI1ICsxMTAwCisrKyBiL2luY2x1ZGUvU2NpbnRpbGxhLmlmYWNlCVR1ZSBE ZWMgMDkgMTE6NDQ6MDEgMjAyNSArMTEwMApAQCAtNzQ3LDYgKzc0Nyw3IEBACiB2YWwgU0NfRUxF TUVOVF9IT1RfU1BPVF9BQ1RJVkVfQkFDSz03MQogdmFsIFNDX0VMRU1FTlRfRk9MRF9MSU5FPTgw CiB2YWwgU0NfRUxFTUVOVF9ISURERU5fTElORT04MQordmFsIFNDX0VMRU1FTlRfQkFTRV9CQUNL R1JPVU5EPTkwCiAKICMgU2V0IHRoZSBjb2xvdXIgb2YgYW4gZWxlbWVudC4gVHJhbnNsdWNlbmN5 IChhbHBoYSkgbWF5IG9yIG1heSBub3QgYmUgc2lnbmlmaWNhbnQKICMgYW5kIHRoaXMgbWF5IGRl cGVuZCBvbiB0aGUgcGxhdGZvcm0uIFRoZSBhbHBoYSBieXRlIHNob3VsZCBjb21tb25seSBiZSAw eGZmIGZvciBvcGFxdWUuCmRpZmYgLXIgYWM2YTJkMzc5ZjI1IGluY2x1ZGUvU2NpbnRpbGxhVHlw ZXMuaAotLS0gYS9pbmNsdWRlL1NjaW50aWxsYVR5cGVzLmgJTW9uIERlYyAwOCAxNDozODowNyAy MDI1ICsxMTAwCisrKyBiL2luY2x1ZGUvU2NpbnRpbGxhVHlwZXMuaAlUdWUgRGVjIDA5IDExOjQ0 OjAxIDIwMjUgKzExMDAKQEAgLTIwMSw2ICsyMDEsNyBAQAogCUhvdFNwb3RBY3RpdmVCYWNrID0g NzEsCiAJRm9sZExpbmUgPSA4MCwKIAlIaWRkZW5MaW5lID0gODEsCisJQmFzZUJhY2tncm91bmQg PSA5MCwKIH07CiAKIGVudW0gY2xhc3MgTGF5ZXIgewpkaWZmIC1yIGFjNmEyZDM3OWYyNSBzcmMv RWRpdFZpZXcuY3h4Ci0tLSBhL3NyYy9FZGl0Vmlldy5jeHgJTW9uIERlYyAwOCAxNDozODowNyAy MDI1ICsxMTAwCisrKyBiL3NyYy9FZGl0Vmlldy5jeHgJVHVlIERlYyAwOSAxMTo0NDowMSAyMDI1 ICsxMTAwCkBAIC0yNTI3LDYgKzI1MjcsMTAgQEAKIAkJZG91YmxlIGR1ckNvcHkgPSAwLjA7CiAJ CUVsYXBzZWRQZXJpb2QgZXBXaG9sZTsKICNlbmRpZgorCQlpZiAoQ29sb3VyT3B0aW9uYWwgYmFj a2dyb3VuZCA9IHZzRHJhdy5FbGVtZW50Q29sb3VyKEVsZW1lbnQ6OkJhc2VCYWNrZ3JvdW5kKSkg eworCQkJc3VyZmFjZS0+RmlsbFJlY3RhbmdsZUFsaWduZWQocmNUZXh0QXJlYSwgRmlsbChiYWNr Z3JvdW5kLnZhbHVlKCkpKTsKKwkJfQorCiAJCWNvbnN0IGJvb2wgYnJhY2VzSWdub3JlU3R5bGUg PSAoKHZzRHJhdy5icmFjZUhpZ2hsaWdodEluZGljYXRvclNldCAmJiAobW9kZWwuYnJhY2VzTWF0 Y2hTdHlsZSA9PSBTdHlsZUJyYWNlTGlnaHQpKSB8fAogCQkJKHZzRHJhdy5icmFjZUJhZExpZ2h0 SW5kaWNhdG9yU2V0ICYmIChtb2RlbC5icmFjZXNNYXRjaFN0eWxlID09IFN0eWxlQnJhY2VCYWQp KSk7CiAKQEAgLTI2MTAsNiArMjYxNCw5IEBACiAJCQkJCQkJeXBvc1NjcmVlbiArIHZzRHJhdy5s aW5lSGVpZ2h0KTsKIAkJCQkJCXBpeG1hcExpbmUtPkZsdXNoRHJhd2luZygpOwogCQkJCQkJc3Vy ZmFjZVdpbmRvdy0+Q29weShyY0NvcHlBcmVhLCBmcm9tLCAqcGl4bWFwTGluZSk7CisJCQkJCQlp ZiAoQ29sb3VyT3B0aW9uYWwgYmFja2dyb3VuZCA9IHZzRHJhdy5FbGVtZW50Q29sb3VyKEVsZW1l bnQ6OkJhc2VCYWNrZ3JvdW5kKSkgeworCQkJCQkJCXBpeG1hcExpbmUtPkZpbGxSZWN0YW5nbGVB bGlnbmVkKFBSZWN0YW5nbGUoMCwgMCwgcmNDbGllbnQuV2lkdGgoKSwgdnNEcmF3LmxpbmVIZWln aHQpLCBGaWxsKGJhY2tncm91bmQudmFsdWUoKSkpOworCQkJCQkJfQogCQkJCQl9CiAKIAkJCQkJ bGluZVdpZHRoTWF4U2VlbiA9IHN0ZDo6bWF4KAo= --000000000000cc988c06457a6bef--