* DPS font backend uses the wrong font [not found] <875ytvbxec.fsf.ref@yahoo.com> @ 2021-10-17 13:20 ` Po Lu 2021-10-17 13:35 ` Po Lu 2021-10-17 17:32 ` Alan Third 0 siblings, 2 replies; 5+ messages in thread From: Po Lu @ 2021-10-17 13:20 UTC (permalink / raw) To: emacs-devel As of 2028df78, font backends are required to use s->font instead of s->face->font, even in the NS port, because s->face is now set to mouse face by redisplay independently of terminal specific code. Every font backend except for nsfont already does that, so it would make sense to change nsfont to do it correctly as well. But is there something I'm missing here? IOW, I'm suggesting to change the following snippet of nsfont_draw: font = (struct nsfont_info *)s->face->font; if (font == NULL) font = (struct nsfont_info *)FRAME_FONT (s->f); to font = (struct nsfont_info *)s->font; if (font == NULL) font = (struct nsfont_info *)FRAME_FONT (s->f); Thanks. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: DPS font backend uses the wrong font 2021-10-17 13:20 ` DPS font backend uses the wrong font Po Lu @ 2021-10-17 13:35 ` Po Lu 2021-10-17 17:35 ` Alan Third 2021-10-17 17:32 ` Alan Third 1 sibling, 1 reply; 5+ messages in thread From: Po Lu @ 2021-10-17 13:35 UTC (permalink / raw) To: emacs-devel Po Lu <luangruo@yahoo.com> writes: > As of 2028df78, font backends are required to use s->font instead of > s->face->font, even in the NS port, because s->face is now set to mouse > face by redisplay independently of terminal specific code. BTW, this also means a great deal of code in the NS port that looks like: if (s->hl == DRAW_MOUSE_FACE) { face = FACE_FROM_ID_OR_NULL (s->f, MOUSE_HL_INFO (s->f)->mouse_face_face_id); if (!face) face = FACE_FROM_ID (s->f, MOUSE_FACE_ID); } else face = FACE_FROM_ID (s->f, s->first_glyph->face_id); Can be removed now, because it's no longer necessary for terminal-specific code to worry about the mouse face like this. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: DPS font backend uses the wrong font 2021-10-17 13:35 ` Po Lu @ 2021-10-17 17:35 ` Alan Third 2021-10-18 0:15 ` Po Lu 0 siblings, 1 reply; 5+ messages in thread From: Alan Third @ 2021-10-17 17:35 UTC (permalink / raw) To: Po Lu; +Cc: emacs-devel On Sun, Oct 17, 2021 at 09:35:21PM +0800, Po Lu wrote: > Po Lu <luangruo@yahoo.com> writes: > > > As of 2028df78, font backends are required to use s->font instead of > > s->face->font, even in the NS port, because s->face is now set to mouse > > face by redisplay independently of terminal specific code. > > BTW, this also means a great deal of code in the NS port that looks > like: > > if (s->hl == DRAW_MOUSE_FACE) > { > face = FACE_FROM_ID_OR_NULL (s->f, > MOUSE_HL_INFO (s->f)->mouse_face_face_id); > if (!face) > face = FACE_FROM_ID (s->f, MOUSE_FACE_ID); > } > else > face = FACE_FROM_ID (s->f, s->first_glyph->face_id); > > Can be removed now, because it's no longer necessary for > terminal-specific code to worry about the mouse face like this. Hmm, I wonder if this means mouse face will be honoured in SVG images now...? That would be nice because I couldn't work out how to find the mouse face where we construct the image struct. -- Alan Third ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: DPS font backend uses the wrong font 2021-10-17 17:35 ` Alan Third @ 2021-10-18 0:15 ` Po Lu 0 siblings, 0 replies; 5+ messages in thread From: Po Lu @ 2021-10-18 0:15 UTC (permalink / raw) To: Alan Third; +Cc: emacs-devel Alan Third <alan@idiocy.org> writes: > Hmm, I wonder if this means mouse face will be honoured in SVG images > now...? No, because it's applied in fill_XXX_glyph_string, which is after any work image.c does, almost right before the glyph string is actually drawn. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: DPS font backend uses the wrong font 2021-10-17 13:20 ` DPS font backend uses the wrong font Po Lu 2021-10-17 13:35 ` Po Lu @ 2021-10-17 17:32 ` Alan Third 1 sibling, 0 replies; 5+ messages in thread From: Alan Third @ 2021-10-17 17:32 UTC (permalink / raw) To: Po Lu; +Cc: emacs-devel On Sun, Oct 17, 2021 at 09:20:43PM +0800, Po Lu wrote: > > As of 2028df78, font backends are required to use s->font instead of > s->face->font, even in the NS port, because s->face is now set to mouse > face by redisplay independently of terminal specific code. > > Every font backend except for nsfont already does that, so it would make > sense to change nsfont to do it correctly as well. But is there > something I'm missing here? > > IOW, I'm suggesting to change the following snippet of nsfont_draw: > > font = (struct nsfont_info *)s->face->font; > if (font == NULL) > font = (struct nsfont_info *)FRAME_FONT (s->f); > > to > > font = (struct nsfont_info *)s->font; > if (font == NULL) > font = (struct nsfont_info *)FRAME_FONT (s->f); Feel free to do whatever is required in nsfont.m, it's been basically unmaintained for a decade or so afaict. My changes were simply to fix crashes and remove macOS code that's no longer used (macOS builds use macfont.m). We really need someone to update nsfont to actually support things like bold and italics and ideally use harfbuzz, but I've really struggled with it, and I don't think anyone actually uses GNUstep Emacs. -- Alan Third ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-10-18 0:15 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <875ytvbxec.fsf.ref@yahoo.com> 2021-10-17 13:20 ` DPS font backend uses the wrong font Po Lu 2021-10-17 13:35 ` Po Lu 2021-10-17 17:35 ` Alan Third 2021-10-18 0:15 ` Po Lu 2021-10-17 17:32 ` Alan Third
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.