Bug 830 - [GTK] MonoDevelop cannot render non-Latin characters on MacOS
Summary: [GTK] MonoDevelop cannot render non-Latin characters on MacOS
Alias: None
Product: Xamarin Studio
Classification: Desktop
Component: General ()
Version: Trunk
Hardware: PC Mac OS
: High normal
Target Milestone: ---
Assignee: Kristian Rietveld (inactive)
: 858 1440 ()
Depends on:
Reported: 2011-09-15 07:24 UTC by Mikayla Hutchinson [MSFT]
Modified: 2012-09-25 02:48 UTC (History)
7 users (show)

Tags: gtk
Is this bug a regression?: ---
Last known good build:

Progress (122.74 KB, image/png)
2011-10-05 12:21 UTC, Kristian Rietveld (inactive)

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.

Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:

Description Mikayla Hutchinson [MSFT] 2011-09-15 07:24:44 UTC
On MacOS, MonoDevelop can't render characters that aren't included in the default fonts, because the Pango font rendering library doesn't support font fallbacks.

Upstream bugs are https://bugzilla.gnome.org/show_bug.cgi?id=608929 and https://bugzilla.gnome.org/show_bug.cgi?id=647969

This can be worked around by manually configuring a font that contains the desired characters.
Comment 1 Kristian Rietveld (inactive) 2011-09-18 16:29:24 UTC
I will be working on font fallback support in Pango's CoreText backend.  I will be posting comments to bug 647969 as referenced above, but will keep you updated in this bug as well.
Comment 2 Kristian Rietveld (inactive) 2011-10-05 12:21:56 UTC
Created attachment 598 [details]

I am making progress.  As you can see in the image, Arabic, Tibetan and Japanese seem to be rendering fine.  I've also seen Chinese and Korean render correctly.

Rendering speed with the patch is currently very slow, because I have not yet implemented (or worked around for testing purposes) the necessary caching.  That's what I will do next, after which the patch should be ready for a first round of testing.
Comment 3 Jeffrey Stedfast 2011-10-05 12:44:37 UTC
Go Kris! Go! (sorry, couldn't help but give a little cheer)
Comment 4 Mikayla Hutchinson [MSFT] 2011-10-12 06:41:19 UTC
*** Bug 1440 has been marked as a duplicate of this bug. ***
Comment 5 Kristian Rietveld (inactive) 2011-10-14 05:45:13 UTC
I have uploaded a first version of the patch to https://bugzilla.gnome.org/show_bug.cgi?id=647969 now.  Implementing the caching took a little longer than I expected, because I also cleaned up the code at the same time to bring it more in line with PangoFcFontmap.
Comment 6 Kristian Rietveld (inactive) 2011-11-06 10:33:21 UTC
The patch in the upstream bug has been updated to fix a crash when loading a non-available font family was requested.

I was wondering if any of the Xamarin team has had a chance yet to test this patch.  If it helps I can set up a branch in the Pango upstream repository which can be used to create test builds.  Some more testing would be really nice before I propose to merge this in the master branch upstream.
Comment 7 Jeffrey Stedfast 2011-11-15 12:34:26 UTC
*** Bug 858 has been marked as a duplicate of this bug. ***
Comment 8 Mikayla Hutchinson [MSFT] 2012-01-03 14:48:16 UTC
This is fixed in the Pango that was shipped in Mono 2.10.7 beta, however there were some other regressions and it was temporarily pulled. It should be released after those regressions have been fixed.