bug#68339: [patch] Set the IME window font to an appropriate size
dANiuu zHaO <[email protected]> Mon, 3 Aug 2026 00:35:07 +0800
| Newsgroups | gmane.emacs.bugs |
|---|---|
| Message-ID | <CAEOE9jdDiry=fND_HnQ4H_q4EfpH6x-9X5gGCchVxU_XkHfaQQ@mail.gmail.com> |
--000000000000ef44d4065813010d Content-Type: multipart/alternative; boundary="000000000000ef44d2065813010b" --000000000000ef44d2065813010b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable [patch 3] Set the IME window font to an appropriate size Changed to use FACE_FROM_ID_OR_NULL and added a fallback check: if face is NULL, use FRAME_FONT instead. dANiuu zHaO <[email protected]> =E4=BA=8E2026=E5=B9=B48=E6=9C=883=E6=97= =A5=E5=91=A8=E4=B8=80 00:10=E5=86=99=E9=81=93=EF=BC=9A > Yes, more testing is a good idea. I will share and distribute these > patches in the Emacs communities I know, and I hope more people can help > test them. > > As for the code suggestions, I will send an improved patch shortly. > > Finally, I have signed the form and am waiting for a response. > Thanks. > > Eli Zaretskii <[email protected]> =E4=BA=8E2026=E5=B9=B48=E6=9C=882=E6=97=A5= =E5=91=A8=E6=97=A5 23:52=E5=86=99=E9=81=93=EF=BC=9A > >> > From: dANiuu zHaO <[email protected]> >> > Date: Sun, 2 Aug 2026 23:27:31 +0800 >> > Cc: [email protected] >> > >> > You were right. I only needed to build it once locally and it worked >> perfectly =E2=80=94 exactly as you described, with no >> > errors at all. There's a new patch and a GIF attached to demonstrate m= y >> current work. >> > Everything works fine on my local machine, but it will likely need mor= e >> testing from others. Lastly, thank you for >> > your guidance =E2=80=94 without it, it would have taken me much longer= to >> figure out the root cause. >> >> Yes, more testing is a good idea. Would people who have IME installed >> on their Windows systems please apply the patch, try using IME, and >> report back? >> >> > Finally, I agree to sign the copyright-assignment agreement. >> >> Thanks, form sent off-list. >> >> > + face =3D FACE_FROM_ID (f, lookup_basic_face (w, f, >> DEFAULT_FACE_ID)); >> > + GetObjectW (FONT_HANDLE (face->font), sizeof (lf), &lf); >> >> Please add the fallback here, in case something goes wrong. >> Specifically, if either 'face' or face->font is NULL, we should use >> FRAME_FONT as fallback. >> >> Also, please use FACE_FROM_ID_OR_NULL instead of FACE_FROM_ID, because >> the latter will hit assert violation if the result is NULL, whereas we >> want to handle that ourselves here. >> > --000000000000ef44d2065813010b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">[patch 3]=C2=A0Set the IME window font to an appropriate s= ize<br><br><div>Changed to use FACE_FROM_ID_OR_NULL and added a fallback ch= eck: if face is NULL, use FRAME_FONT instead.</div></div><br><div class=3D"= gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">dA= Niuu zHaO <<a href=3D"mailto:[email protected]">[email protected]<= /a>> =E4=BA=8E2026=E5=B9=B48=E6=9C=883=E6=97=A5=E5=91=A8=E4=B8=80 00:10= =E5=86=99=E9=81=93=EF=BC=9A<br></div><blockquote class=3D"gmail_quote" styl= e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin= g-left:1ex"><div dir=3D"ltr">Yes, more testing is a good idea. I will share= and distribute these patches in the Emacs communities I know, and I hope m= ore people can help test them.<br><br>As for the code suggestions, I will s= end an improved patch shortly.<div><br><div>Finally, I have signed the form= and am waiting for a response.<br>Thanks.</div></div></div><br><div class= =3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Eli Zaretskii <<a= href=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a>> =E4=BA= =8E2026=E5=B9=B48=E6=9C=882=E6=97=A5=E5=91=A8=E6=97=A5 23:52=E5=86=99=E9=81= =93=EF=BC=9A<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px= 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">>= ; From: dANiuu zHaO <<a href=3D"mailto:[email protected]" target=3D"_= blank">[email protected]</a>><br> > Date: Sun, 2 Aug 2026 23:27:31 +0800<br> > Cc: <a href=3D"mailto:[email protected]" target=3D"_blank">68339@d= ebbugs.gnu.org</a><br> > <br> > You were right. I only needed to build it once locally and it worked p= erfectly =E2=80=94 exactly as you described, with no<br> > errors at all. There's a new patch and a GIF attached to demonstra= te my current work.<br> > Everything works fine on my local machine, but it will likely need mor= e testing from others. Lastly, thank you for<br> > your guidance =E2=80=94 without it, it would have taken me much longer= to figure out the root cause.<br> <br> Yes, more testing is a good idea.=C2=A0 Would people who have IME installed= <br> on their Windows systems please apply the patch, try using IME, and<br> report back?<br> <br> > Finally, I agree to sign the copyright-assignment agreement.<br> <br> Thanks, form sent off-list.<br> <br> > +=C2=A0 =C2=A0 =C2=A0 =C2=A0face =3D FACE_FROM_ID (f, lookup_basic_fac= e (w, f, DEFAULT_FACE_ID));<br> > +=C2=A0 =C2=A0 =C2=A0 =C2=A0GetObjectW (FONT_HANDLE (face->font), s= izeof (lf), &lf);<br> <br> Please add the fallback here, in case something goes wrong.<br> Specifically, if either 'face' or face->font is NULL, we should = use<br> FRAME_FONT as fallback.<br> <br> Also, please use FACE_FROM_ID_OR_NULL instead of FACE_FROM_ID, because<br> the latter will hit assert violation if the result is NULL, whereas we<br> want to handle that ourselves here.<br> </blockquote></div> </blockquote></div> --000000000000ef44d2065813010b-- --000000000000ef44d4065813010d Content-Type: application/octet-stream; name="0001-Set-the-IME-window-font-to-an-appropriate-size.patch" Content-Disposition: attachment; filename="0001-Set-the-IME-window-font-to-an-appropriate-size.patch" Content-Transfer-Encoding: base64 Content-ID: <f_msc0qw6j0> X-Attachment-Id: f_msc0qw6j0 RnJvbSAwZGFkNjNjMWU3YmEwZGRiZDAyMjAzZDdiMTEwOTFhMjEyNDg1NjM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB6ZG4gPHpoYW9kYW5pdTFAZ21haWwuY29tPgpEYXRlOiBTdW4s IDIgQXVnIDIwMjYgMTE6MDU6MDIgKzA4MDAKU3ViamVjdDogW1BBVENIXSBTZXQgdGhlIElNRSB3 aW5kb3cgZm9udCB0byBhbiBhcHByb3ByaWF0ZSBzaXplLgoKKiBzcmMvdzMyZm5zLmMgKHczMl93 bmRfcHJvYyk6IE9idGFpbiB0aGUgc3RydWN0IGZhY2UgYW5kIHVzZQpGT05UX0hBTkRMRSB0byBj b252ZXJ0IGZhY2UtPmZvbnQgdG8gYW4gSEZPTlQsIGZhbGxpbmcgYmFjayB0bwpGUkFNRV9GT05U IHdoZW4gZmFjZSBpcyBOVUxMLCBpbiBvcmRlciB0byByZXRyaWV2ZSB0aGUgZm9udAppbmZvcm1h dGlvbiBhbmQgc2V0IHRoZSBmb250IGFjY29yZGluZ2x5LgotLS0KIHNyYy93MzJmbnMuYyB8IDE1 ICsrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9zcmMvdzMyZm5zLmMgYi9zcmMvdzMyZm5zLmMKaW5kZXggNzI2ZmU1Mi4uZjQyMjY0 MiAxMDA2NDQKLS0tIGEvc3JjL3czMmZucy5jCisrKyBiL3NyYy93MzJmbnMuYwpAQCAtNDcsNiAr NDcsNyBAQCAjZGVmaW5lIENPQkpNQUNST1MgLyogQXNrIGZvciBDIGRlZmluaXRpb25zIGZvciBD T00uICAqLwogCiAjaW5jbHVkZSAibGlzcC5oIgogI2luY2x1ZGUgInczMnRlcm0uaCIKKyNpbmNs dWRlICJ3MzJmb250LmgiCiAjaW5jbHVkZSAiZnJhbWUuaCIKICNpbmNsdWRlICJ3aW5kb3cuaCIK ICNpbmNsdWRlICJidWZmZXIuaCIKQEAgLTIwMCw2ICsyMDEsOSBAQCAjZGVmaW5lIENDSERFVklD RU5BTUUgMzIKIHR5cGVkZWYgQk9PTCAoV0lOQVBJICogSW1tR2V0T3BlblN0YXR1c19Qcm9jKSAo SU4gSElNQyk7CiB0eXBlZGVmIEJPT0wgKFdJTkFQSSAqIEltbVNldE9wZW5TdGF0dXNfUHJvYykg KElOIEhJTUMsIElOIEJPT0wpOwogCisvKiBTZXQgSU1FIGZvbnQuICAqLwordHlwZWRlZiBCT09M IChXSU5BUEkgKiBJbW1TZXRDb21wb3NpdGlvbkZvbnRfUHJvYykgKElOIEhJTUMsIExQTE9HRk9O VFcgbHBsZik7CisKIHR5cGVkZWYgSE1PTklUT1IgKFdJTkFQSSAqIE1vbml0b3JGcm9tUG9pbnRf UHJvYykgKElOIFBPSU5UIHB0LCBJTiBEV09SRCBmbGFncyk7CiB0eXBlZGVmIEJPT0wgKFdJTkFQ SSAqIEdldE1vbml0b3JJbmZvX1Byb2MpCiAgIChJTiBITU9OSVRPUiBtb25pdG9yLCBPVVQgc3Ry dWN0IE1PTklUT1JfSU5GTyogaW5mbyk7CkBAIC0yNDcsNiArMjUxLDcgQEAgI2RlZmluZSBDQ0hE RVZJQ0VOQU1FIDMyCiBzdGF0aWMgSW1tR2V0Q29udGV4dF9Qcm9jIGdldF9pbWVfY29udGV4dF9m biA9IE5VTEw7CiBzdGF0aWMgSW1tR2V0T3BlblN0YXR1c19Qcm9jIGdldF9pbWVfb3Blbl9zdGF0 dXNfZm4gPSBOVUxMOwogc3RhdGljIEltbVNldE9wZW5TdGF0dXNfUHJvYyBzZXRfaW1lX29wZW5f c3RhdHVzX2ZuID0gTlVMTDsKK3N0YXRpYyBJbW1TZXRDb21wb3NpdGlvbkZvbnRfUHJvYyBzZXRf aW1lX2NvbXBvc2l0aW9uX2ZvbnRfZm4gPSBOVUxMOwogc3RhdGljIEltbVJlbGVhc2VDb250ZXh0 X1Byb2MgcmVsZWFzZV9pbWVfY29udGV4dF9mbiA9IE5VTEw7CiBzdGF0aWMgSW1tU2V0Q29tcG9z aXRpb25XaW5kb3dfUHJvYyBzZXRfaW1lX2NvbXBvc2l0aW9uX3dpbmRvd19mbiA9IE5VTEw7CiBz dGF0aWMgTW9uaXRvckZyb21Qb2ludF9Qcm9jIG1vbml0b3JfZnJvbV9wb2ludF9mbiA9IE5VTEw7 CkBAIC01MDMyLDggKzUwMzcsMTEgQEAgdzMyX3duZF9wcm9jIChIV05EIGh3bmQsIFVJTlQgbXNn LCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogICAgICAgZWxzZQogCXsKIAkgIENPTVBP U0lUSU9ORk9STSBmb3JtOworCSAgTE9HRk9OVFcgbGY7CiAJICBISU1DIGNvbnRleHQ7CiAJICBz dHJ1Y3Qgd2luZG93ICp3OworCSAgc3RydWN0IGZhY2UgKmZhY2U7CisJICBzdHJ1Y3QgZm9udCAq Zm9udDsKIAogCSAgLyogSW1wbGVtZW50YXRpb24gbm90ZTogVGhlIGNvZGUgYmVsb3cgZG9lcyBz b21ldGhpbmcgdGhhdAogCSAgICAgb25lIHNob3VsZG4ndCBkbzogaXQgYWNjZXNzZXMgdGhlIHdp bmRvdyBvYmplY3QgZnJvbSBhCkBAIC01MDc3LDYgKzUwODUsMTAgQEAgdzMyX3duZF9wcm9jIChI V05EIGh3bmQsIFVJTlQgbXNnLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogCSAgaWYg KCFjb250ZXh0KQogCSAgICBnb3RvIGRmbHQ7CiAKKwkgIGZhY2UgPSBGQUNFX0ZST01fSURfT1Jf TlVMTCAoZiwgbG9va3VwX2Jhc2ljX2ZhY2UgKHcsIGYsIERFRkFVTFRfRkFDRV9JRCkpOworCSAg Zm9udCA9IGZhY2UgPyBmYWNlLT5mb250IDogRlJBTUVfRk9OVCAoZik7CisJICBHZXRPYmplY3RX IChGT05UX0hBTkRMRSAoZm9udCksIHNpemVvZiAobGYpLCAmbGYpOworCSAgc2V0X2ltZV9jb21w b3NpdGlvbl9mb250X2ZuIChjb250ZXh0LCAmbGYpOwogCSAgc2V0X2ltZV9jb21wb3NpdGlvbl93 aW5kb3dfZm4gKGNvbnRleHQsICZmb3JtKTsKIAkgIHJlbGVhc2VfaW1lX2NvbnRleHRfZm4gKGh3 bmQsIGNvbnRleHQpOwogCX0KQEAgLTEyMzMyLDYgKzEyMzQ0LDkgQEAgZ2xvYmFsc19vZl93MzJm bnMgKHZvaWQpCiAgICAgICBnZXRfcHJvY19hZGRyIChpbW0zMl9saWIsICJJbW1HZXRPcGVuU3Rh dHVzIik7CiAgICAgc2V0X2ltZV9vcGVuX3N0YXR1c19mbiA9IChJbW1TZXRPcGVuU3RhdHVzX1By b2MpCiAgICAgICBnZXRfcHJvY19hZGRyIChpbW0zMl9saWIsICJJbW1TZXRPcGVuU3RhdHVzIik7 CisKKyAgICBzZXRfaW1lX2NvbXBvc2l0aW9uX2ZvbnRfZm4gPSAoSW1tU2V0Q29tcG9zaXRpb25G b250X1Byb2MpCisgICAgICBnZXRfcHJvY19hZGRyIChpbW0zMl9saWIsICJJbW1TZXRDb21wb3Np dGlvbkZvbnRXIik7CiAgIH0KIAogICBITU9EVUxFIGhtX2tlcm5lbDMyID0gR2V0TW9kdWxlSGFu ZGxlICgia2VybmVsMzIuZGxsIik7Ci0tIAoyLjU0LjAKCg== --000000000000ef44d4065813010d--