Inkscape >= 0.91 doesn't show fonts loaded by font manager on Windows

Bug #1416674 reported by Matt Sim on 2015-01-31
114
This bug affects 14 people
Affects Status Importance Assigned to Milestone
Inkscape
Medium
Unassigned

Bug Description

v0.48 can use fonts loaded by a font manager (Nexus Font, http://www.xiles.net). This is awesomely convenient!
Sadly, in v0.91-pre, this capability has disappeared.

- Win 7

su_v (suv-lp) wrote :

Please provide details which arch of Inkscape 091pre build you installed - 32bit or 64bit, and which pre-release build this refers to (there had been 5 pre-releases (0-4) in the past months).

(0.91 has been released by the way, see inkscape.org).

tags: added: fonts
removed: font manager
Changed in inkscape:
status: New → Incomplete

Thanks for the quick followup!
I just installed v0.91 64bit and the bug is still there.
(previous version was 0.91-pre2 64bit)

I hope it's an easy fix, coz the font manager workflow has become very
useful.

On Sat, Jan 31, 2015 at 9:06 AM, ~suv <email address hidden> wrote:

> Please provide details which arch of Inkscape 091pre build you installed
> - 32bit or 64bit, and which pre-release build this refers to (there had
> been 5 pre-releases (0-4) in the past months).
>
> (0.91 has been released by the way, see inkscape.org).
>
> ** Tags removed: font manager
> ** Tags added: fonts
>
> ** Changed in: inkscape
> Status: New => Incomplete
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1416674
>
> Title:
> 0.91 doesn't show fonts loaded by font manager
>
> Status in Inkscape: A Vector Drawing Tool:
> Incomplete
>
> Bug description:
> v0.48 can use fonts loaded by a font manager (Nexus Font,
> http://www.xiles.net). This is awesomely convenient!
> Sadly, in v0.91-pre, this capability has disappeared.
>
> - Win 7
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/inkscape/+bug/1416674/+subscriptions
>

su_v (suv-lp) on 2015-01-31
Changed in inkscape:
status: Incomplete → New
tags: added: win64
tags: added: regression

Hello. Have the same problem. Inkscape 0.91 official release (win 64-bit) is not showing fonts loaded by Nexus Font Manager.

jazzynico (jazzynico) wrote :

@Mast Sim, Anyutap - by "loaded", do you mean that just running the Nexus font manager prevents Inkcape from working correctly? Or does it need extra steps to reproduce the issue?

Anyutap (anapopescu80) wrote :

@jazzynico. I don't think running Nexus Font 'prevents' Inkscape from working correctly. By 'loaded' I mean that all font files displayed in the font manager (both installed and not installed fonts) become available for other applications. The workflow with Inkscape 0.48.5 was pretty simple. First start Nexus Font. After Nexus Font loads all the necessary fonts, start Inkscape 0.48. Voila, Inkscape 'sees' fonts loaded ( or 'temporarily installed' if you wish) by Nexus Font. There is a problem with Inkscape 0.91 - it does not 'see' fonts loaded by Nexus font like other applications do.

Giraldi Maggio (bedek78) wrote :

I experience the same thing but using SkyFonts. Temporary installed fonts using SkyFonts just doesn't appear. It used to work well before.

su_v (suv-lp) wrote :

Likely related earlier report (using regfont, an application to temporarily register or unregister fonts):
- Bug #1394074 “windows user fonts ignored”
  https://bugs.launchpad.net/inkscape/+bug/1394074

su_v (suv-lp) wrote :

Possibly related to the changes in revision 10742 (which turned off the native Windows backend for pango)?
http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/10742

OldClicker (oldclicker) wrote :

I've got the same issue using the MainType font manager. It worked perfectly in 0.48.5 - none of my other Windows applications have problems seeing the fonts, even the GIMP (although that needs the real source folder defining).

Daiwe (axpvms) wrote :

This bug in 0.91 overrides the default 32-bit Windows behavior.

To use an uninstalled font file from any arbitrary directory without adding a "pointer" in the Windows Fonts directory, the DEFAULT behavior is:
1) Display sample text in Windows Font Viewer by double-clicking the file name OR display sample text in a font manager (for example Font Navigator or Nexus Font).
2) Leave the display window open.
3) Open the program in which you want to use the font. The font will be available in that program's font selection dropdown menu.

su_v (suv-lp) on 2015-03-20
Changed in inkscape:
importance: Undecided → Medium
milestone: none → 0.92
status: New → Confirmed
tags: added: win32
Stephen Bounds (theguru-h) wrote :

Just thought I would note that this fix also appears to break commercial font managers such as TypeKit.

valmooo (valmooo) wrote :

I fixed this by editing Inkscape\etc\fonts\conf.d\51-local.conf by adding <dir>d:\fonts\</dir> between <fontconfig> and </fontconfig>
where d:\fonts\ is my font directory

Changing <dir>WINDOWSFONTDIR</dir> to <dir>d:\fonts\</dir> in Inkscape\etc\fonts\fonts.conf makes Inkscape to ignore the system fonts (if you want to see only the custom fonts list)

ScislaC (scislac) on 2015-11-06
tags: added: blocker
Matt Sim (mr-matt-sim) wrote :

Alternatively, you can copy the font files into %USERPROFILE%/.fonts
(BTW I had to use a console to create the .fonts directory since explorer choked on the dot notation)

This avoids the necessity of admin rights to use custom fonts, which was originally my only reason for needing a font manager.

Bryce Harrington (bryce) wrote :

Alvin, this appears to be a side effect of disabling Pango on win32 (http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/10742). Unfortunately the severity of this is bad enough it's blocking the Inkscape 0.92 release. Would you have time to investigate a better solution?

We are also considering just reverting that change, but it sounds like in addition to regressing that bug it might disrupt other functionality such as some of the recent Opentype work. Your attention and advice on this would be much appreciated.

Alvin Penner (apenner) wrote :

thanks for the heads-up. My most recent post on this subject was at: (May 9, 2015, 1:03 PM)

http://inkscape.13.x6.nabble.com/non-Unicode-symbol-fonts-do-not-work-on-Windows-Bug-165665-Do-we-need-the-flag-USE-PANGO-WIN32-td2842739.html#none

I will investigate tomorrow to see if anything has changed since then.

Alvin Penner (apenner) wrote :

attached is a brief summary of what I have tried today:
revert rev 10742, http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/10742
using the attached patch file. This led to 4 error messages of the type:
src/libnrtype/FontInstance.cpp:559:38: error: 'OUTLINETEXTMETRIC' has no member named 'otmUnderscorePosition'

Alvin Penner (apenner) wrote :

these errors were caused by name changes in the file \mingw\include\wingdi.h

- fix these name changes and a few other errors using the attached patch file:
- the compile errors have now been reduced to the following:

compile src/libnrtype/FontFactory.cpp
Make error line 313: problem compiling: In file included from src/style.h:21:0,
                 from src/libnrtype/FontFactory.h:24,
                 from src/libnrtype/FontFactory.cpp:22:
src/style-internal.h:522:5: warning: unused parameter 'inherits' [-Wunused-parameter]
src/libnrtype/FontFactory.cpp: In member function 'font_instance* font_factory::Face(PangoFontDescription*, bool)':
src/libnrtype/FontFactory.cpp:682:61: error: cannot convert 'HFONT {aka HFONT__*}' to 'FT_Face {aka FT_FaceRec_*}' for argument '1' to 'PangoOTInfo* pango_ot_info_get(FT_Face)'
src/libnrtype/FontFactory.cpp:693:96: warning: passing NULL to non-pointer argument 4 of 'PangoOTTag* pango_ot_info_list_languages(PangoOTInfo*, PangoOTTableType, guint, PangoOTTag)' [-Wconversion-null]

...................................................
unfortunately, I do not know how to fix these errors. They appear to be related to changes made in rev 14487 and rev 14552.

Needless to say, I am way out of my depth here, I cannot even begin to know how to fix these errors. Any help from any quarter would be greatly appreciated. I will try to summarize the situation below.

Alvin Penner (apenner) wrote :

- the original bug report that triggered this change was https://bugs.launchpad.net/inkscape/+bug/165665

- the original discussion thread was: http://article.gmane.org/gmane.comp.graphics.inkscape.devel/37630

- the original commit was: http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/10742

- the first attempt to revert the change was: http://article.gmane.org/gmane.comp.graphics.inkscape.devel/45712
This attempt failed because I was not able to successfully set a default font after reverting the change.

- the second attempt to revert the change was: http://article.gmane.org/gmane.comp.graphics.inkscape.devel/46041
This attempt failed because the entered text often consisted entirely of dots and dashes, no
text, but at the same time it did show up correctly in the Text and Font dialog box preview
area in the docked dialog.

- the third attempt to revert the change was today:
This attempt failed because I cannot compile Inkscape, errors shown above.

Needless to say, I apologize profusely for initiating this whole mess. Having never before worked on a project of this size or complexity, I had no idea what I was starting when I made the original commit. I assumed naively that the change would be reversible, which was clearly wrong. Any help from any side would be greatly appreciated, particularly from Windows developers. I do not believe that I can contribute anything more to fix this problem, since I do not have the competence to do so.

Alvin Penner (apenner) wrote :

fwiw, it looks as if the error message in comment 17 is probably related to line 88 in the file src\libnrtype\font-instance.h. This code says:

#ifdef USE_PANGO_WIN32
    HFONT theFace;
#else
    FT_Face theFace;
                // it's a pointer in fact; no worries to ref/unref it, pango does its magic
                // as long as pFont is valid, theFace is too
#endif

so the type of 'theFace' changes depending on the USE_PANGO_WIN32 flag. Unfortunately in the file FontFactory.cpp line 682 the call:
PangoOTInfo* info = pango_ot_info_get( res->theFace );
requires a FT_Face, so it crashes. I don't know how to get around this problem.

Alvin Penner (apenner) wrote :

at the risk of stating the obvious, I believe that the only way to re-enable the USE_PANGO_WIN32 flag will be to somehow bypass or temporarily disable the OpenType code that was committed in rev 14215.
http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/14215
...........................................................
- when using the USE_PANGO_WIN32 flag, the typical call one sees is 'pango_win32_font_cache_load' which comes from the dll 'libpangowin32-1.0-0.dll'

- when not using this flag, the typical call one sees is 'pango_fc_font_lock_face' which comes from the dll 'libpangoft2-1.0-0.dll'.

- the OpenType code committed in rev 14215 introduced a new type of call to 'pango_ot_info_get' which also comes from 'libpangoft2-1.0-0.dll'.

since these two dll's do not seem to overlap in any way, it seems that it will be necessary to avoid executing the OpenType code before the USE_PANGO_WIN32 flag can be re-enabled.

Any feedback of any sort would be greatly appreciated ...

jazzynico (jazzynico) wrote :

@Tav - Any idea on that bug?

Changed in inkscape:
status: Confirmed → Triaged
Tavmjong Bah (tavmjong-free) wrote :

Looks like one has basically a choice on Windows of either using a font manager or being able to use OpenType features (alternative glyphs, etc.). Trunk has replaced the Pango OT calls with HarfBuzz calls but this probably doesn't change anything. I guess one should survey Windows users to see which is more important.

A quick look at the Pango documentation shows that pango_win32_get_context () is deprecated but I again doubt updating this will change anything.

Since this is not a regression from 0.91, it should probably not be a blocker for 0.92.

I don't use Windows so I can't be of anymore help than this.

ScislaC (scislac) wrote :

@Tav: It most certainly was a regression introduced in 0.91.

Alvin Penner (apenner) wrote :

@Tav - could you provide a specific example of what an OpenType feature is? (Using a font that would be commonly available on Windows?) I would like to test on Windows to see what the OpenType feature does.

Tavmjong Bah (tavmjong-free) wrote :

@Alvin - I don't use Windows so I can't help you there. For an overview of what OpenType features are see:

http://tavmjong.free.fr/blog/?p=1442

Duarte Ramos (duarte-framos) wrote :

OMG! This has been bugging me immensely ever since 0.91 was released.
I never actually bothered reporting it since I though I was alone, and this was a pretty much an 'exotic' and an unorthodox combination of applications and use of Inkscape.

Anyway I also use nexusfont (http://www.xiles.net/) for managing fonts, and the ability to access my large library without forcibly having to install to system every font file I randomly use in a single project was truly convenient.

Anyway just wanted to add my two cents that I'd also really love to see this fixed for 0.92, if possible.

Thank you.

Daiwe (axpvms) wrote :

I see that this regression introduced in 0.91 is being actively preserved in 0.92.
I shall revert to 0.48.5 since font management is more important than a few seldom used OpenType features.
I am curious about the relative numbers of downloads for Windows versus other platforms, as I suspect Window downloads outnumber other platforms combined.

Duarte Ramos (duarte-framos) wrote :

Tavmjong Bah (tavmjong-free) wrote on 2016-09-05: #22
>I guess one should survey Windows users to see which is more important.

From my part I'd definitely rather have font manager support than the open type features. I don't even know what they are or which fonts actually support them in practice, but I do sorely miss not being able to use a font manager.

Under Windows it is a real pain to have to install loads of fonts to system when I only use them in some single random project.

Bryce Harrington (bryce) wrote :

I was hoping we'd see a fix for this issue with 0.92. However, the issue exists already in the current release so it doesn't count as a 0.91 regression and afaik there is not a solution in the works for it, so regretfully we need to drop the blocker tag. Hopefully it can get some attention for 0.93; I will accept it as a 0.93 blocker IF it gets an assignee and someone commits to getting it worked on for that release.

tags: removed: blocker

I'm willing to support a developer interested in working on this issue

On Dec 26, 2016 11:44 PM, "Bryce Harrington" <email address hidden>
wrote:

> I was hoping we'd see a fix for this issue with 0.92. However, the
> issue exists already in the current release so it doesn't count as a
> 0.91 regression and afaik there is not a solution in the works for it,
> so regretfully we need to drop the blocker tag. Hopefully it can get
> some attention for 0.93; I will accept it as a 0.93 blocker IF it gets
> an assignee and someone commits to getting it worked on for that
> release.
>
> ** Tags removed: blocker
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1416674
>
> Title:
> 0.91 doesn't show fonts loaded by font manager
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/inkscape/+bug/1416674/+subscriptions
>

su_v (suv-lp) on 2017-01-04
summary: - 0.91 doesn't show fonts loaded by font manager
+ Inkscape >= 0.91 doesn't show fonts loaded by font manager on Windows
ScislaC (scislac) on 2017-01-05
Changed in inkscape:
milestone: 0.92 → 0.93
Richard Tomkins (rtomkins) wrote :

Same problem with FontExplorer X Pro, 64 bit, on Windows 10 64 bit and using Inkscape 0.92.1 64 bit.

Hopefully some smart person has a solution sitting in their back poclet?

Eduard Braun (eduard-braun2) wrote :

Small update: I just pushed
https://gitlab.com/inkscape/inkscape/commit/398d69e9d27bd5e0a8db85cc799478534b9db52f
which allows at the very least to compile with USE_PANGO_WIN32 again.

It disables all OpenType features and there's apparently some glitch with setting font-style initially, so some work is necessary to bring it up to speed again.

One thing we could think about is making this a preference, so Windows users can decide whether they want to use the native pango_win32 backend or the freetype backend.

@Tavmjong: Do you know if there are any plans to add support for OpenType features to Pango's win32 backend and/or HFONT support to harfbuzz?

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers