Re: Decreasing seams in scaled windows

Neil Hodgson <[email protected]> Sun, 21 Jun 2026 09:21:02 +1000
Newsgroups gmane.comp.lib.scintilla.devel
Message-ID <CACWkrTiX45E9qpTcUezPOyDHwDOi8oCbCirY0JnAAFwSkY5faA@mail.gmail.com>
--0000000000008669da0654b7aab9
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

John:

> Here=E2=80=99s a version that always snaps.

That worked for me on macOS.

> The backing store has a grid of what is dirty and that grid is only half =
the size of the backing store on retina displays. Making it full size seems=
 to fix the one pixel lines.

The Wayland/Linux lines may be a similar bug. Using the snap code
(with changes to ensure it runs) fixes some cases but not others. It
appears to fix 125% and 133% but not 150%. For 150% the problem moves
a little - likely a single pixel.
https://www.scintilla.org/QtScaleSnap150Wayland.png

To get this for 150% (with Ubuntu 26.04 LTS Wayland Qt 6.10.2 inside
VirtualBox):
* Disable the `if defined(Q_OS_APPLE)` checks
* Remove the `if (backing =3D=3D 1)` checks since there is no 'retina'
pixel-doubling
* Remove the early return for scales other than 1.0 and 2.0 in
InvalidateRectangle

This produces the expected 'q' of 2 (150%), 3 (133%), and 4 (125%) and
the corresponding snapped rectangle value.

Neil

--=20
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 e=
mail to [email protected].
To view this discussion visit https://groups.google.com/d/msgid/scintilla-i=
nterest/CACWkrTiX45E9qpTcUezPOyDHwDOi8oCbCirY0JnAAFwSkY5faA%40mail.gmail.co=
m.

--0000000000008669da0654b7aab9
Content-Type: text/plain; charset="US-ASCII"; name="EnableSnap.patch"
Content-Disposition: attachment; filename="EnableSnap.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mqmyvx8w0>
X-Attachment-Id: f_mqmyvx8w0

LS0tIFBsYXRRdC5jcHAJMjAyNi0wNi0yMSAwOTowMzo0Mi4wOTYxMzA2ODggKzEwMDANCisrKyAv
bWVkaWEvc2ZfdS9oZy9zY2ludGlsbGEvcXQvU2NpbnRpbGxhRWRpdEJhc2UvUGxhdFF0LmNwcAky
MDI2LTA2LTIwIDIxOjUwOjU2LjQ1ODc2NjUwMCArMTAwMA0KQEAgLTIyNyw2ICsyMjcsNyBAQA0K
IC8vIGJhY2tpbmcgc3RvcmUgdHJhY2tzIGRpcnR5IHN0YXRlIGF0IGRldmljZS1waXhlbCByZXNv
bHV0aW9uOyB0aGF0IG1ha2VzIHRoZQ0KIC8vIGZyYWN0aW9uYWwtc2NhbGluZyB3b3JrYXJvdW5k
cyBiZWxvdyBjb21waWxlIG91dCBlbnRpcmVseS4NCiANCisjaWYgZGVmaW5lZChRX09TX0FQUExF
KSAmJiAhZGVmaW5lZChTQ0lOVElMTEFfUVRfQkFDS0lOR1NUT1JFX0ZJWEVEKQ0KIC8vIEdyb3cg
YSBsb2dpY2FsIHVwZGF0ZSByZWN0IHNvIGl0cyBjb29yZGluYXRlcyB0cmFuc2xhdGUgaW50byBl
dmVuIGRldmljZQ0KIC8vIHBpeGVscyB3L28gcm91bmRpbmcuIFRoZSBjb29yZGluYXRlcyBuZWVk
IHRvIGJlIGV2ZW4gYmVjYXVzZSB0aGVyZSdzDQogLy8gYSBkaXJ0eSBncmlkIHRoYXQncyAxLzIg
dGhlIHNpemUgb2YgdGhlIGRldmljZSBwaXhlbCBncmlkIG9uIFJldGluYQ0KQEAgLTIzNCw2ICsy
MzUsOCBAQA0KIHN0YXRpYyBRUmVjdCBTbmFwVG9EZXZpY2VQaXhlbEdyaWQoUVJlY3QgdXBkLCBx
cmVhbCBzY2FsZSwgUVNpemUgd2lkZ2V0U2l6ZSkNCiB7DQogCWNvbnN0IGludCBiYWNraW5nID0g
KHNjYWxlID49IDIuMCkgPyAyIDogMTsNCisJaWYgKGJhY2tpbmcgPT0gMSkNCisJCXJldHVybiB1
cGQ7ICAgLy8gZ3JpZCBpcyBhbHJlYWR5IGRldmljZS1waXhlbCByZXNvbHV0aW9uOyBub3RoaW5n
IHRvIHNuYXANCiANCiAJLy8gcSBsb2dpY2FsIHBpeGVscyBzcGFuIHEgKiAoc2NhbGUvYmFja2lu
ZykgZ3JpZCBjZWxscy4gIFRoZSBzbWFsbGVzdCBxDQogCS8vIHRoYXQgbWFrZXMgdGhpcyB3aG9s
ZSBpcyB0aGUgc25hcCBwZXJpb2Qgd2hvc2UgbXVsdGlwbGVzIHB1dCBsb2dpY2FsDQpAQCAtMjYy
LDYgKzI2NSw3IEBADQogCQlyZXR1cm4gUVJlY3QoKTsgICAvLyB3b3VsZCBjb3ZlciB0aGUgd2hv
bGUgd2lkZ2V0DQogCXJldHVybiBzbmFwcGVkOw0KIH0NCisjZW5kaWYNCiANCiBkb3VibGUgU2Nh
bGVUb011bHRpcGx5KFdpbmRvd0lEIHdpZCkNCiB7DQpAQCAtOTgzLDEyICs5ODcsMTUgQEANCiAj
aWYgIWRlZmluZWQoUV9PU19XSU4pICYmICFkZWZpbmVkKFFfT1NfQVBQTEUpDQogCQkJLy8gVXNp
bmcgWDExIG9yIFdheWxhbmQsIGxpa2VseSBMaW51eCBidXQgbWF5IGJlIGEgQlNEIG9yIHNpbWls
YXINCiAJCQlpZiAoc2NhbGUgIT0gMS4wICYmIHNjYWxlICE9IDIuMCkgew0KKwkJCQl3aW5kb3co
d2lkKS0+dXBkYXRlKCk7DQorCQkJCXJldHVybjsNCiAJCQl9DQogI2VuZGlmDQogDQogCQkJdXBk
ID0gUVJlY3RGRnJvbVBSZWN0KHJjIC8gc2NhbGUpLnRvQWxpZ25lZFJlY3QoKTsNCiAJCX0NCiAN
CisjaWYgZGVmaW5lZChRX09TX0FQUExFKSAmJiAhZGVmaW5lZChTQ0lOVElMTEFfUVRfQkFDS0lO
R1NUT1JFX0ZJWEVEKQ0KIAkJLy8gbWFjT1M6IHNuYXAgdGhlIHVwZGF0ZSB0byB0aGUgYmFja2lu
ZyBzdG9yZSdzIGRldmljZS1waXhlbCBncmlkLg0KIAkJY29uc3QgUVJlY3Qgc25hcHBlZCA9IFNu
YXBUb0RldmljZVBpeGVsR3JpZCh1cGQsIHNjYWxlLCB3aW5kb3cod2lkKS0+c2l6ZSgpKTsNCiAJ
CWlmIChzbmFwcGVkLmlzTnVsbCgpKSB7DQpAQCAtOTk2LDYgKzEwMDMsNyBAQA0KIAkJCXJldHVy
bjsNCiAJCX0NCiAJCXVwZCA9IHNuYXBwZWQ7DQorI2VuZGlmDQo=
--0000000000008669da0654b7aab9--