From 283b909dad09048535cec8e3d69d77fa498382bf Mon Sep 17 00:00:00 2001
From: manolo <manolo@ea41ed52-d2ee-0310-a9c1-e6b18d33e121>
Date: Sun, 21 Dec 2014 10:11:18 +0000
Subject: [PATCH] Remove the link error sometimes caused by class
 Fl_XFont_On_Demand not exported from libfltk.so but called by function
 gl_font() of file src/gl_draw.cxx (X11-specific).

git-svn-id: http://seriss.com/public/fltk/fltk/branches/branch-1.3@10504 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
---
 FL/x.H          | 1 +
 src/fl_font.cxx | 6 ++++++
 src/gl_draw.cxx | 2 +-
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/FL/x.H b/FL/x.H
index 2112044..b4fe5fa 100644
--- a/FL/x.H
+++ b/FL/x.H
@@ -132,6 +132,7 @@ private:
   XFontStruct *ptr;
 };
 extern FL_EXPORT Fl_XFont_On_Demand fl_xfont;
+extern FL_EXPORT XFontStruct* fl_X_core_font();
 
 // this object contains all X-specific stuff about a window:
 // Warning: this object is highly subject to change!  
diff --git a/src/fl_font.cxx b/src/fl_font.cxx
index 6f5f5e0..26960e0 100644
--- a/src/fl_font.cxx
+++ b/src/fl_font.cxx
@@ -55,6 +55,12 @@
 #  include "fl_font_x.cxx"
 #endif // WIN32
 
+#if ! (defined(WIN32) || defined(__APPLE__))
+XFontStruct *fl_X_core_font()
+{
+  return fl_xfont.value();
+}
+#endif
 
 double fl_width(const char* c) {
   if (c) return fl_width(c, (int) strlen(c));
diff --git a/src/gl_draw.cxx b/src/gl_draw.cxx
index 315e11d..d57d41a 100644
--- a/src/gl_draw.cxx
+++ b/src/gl_draw.cxx
@@ -81,7 +81,7 @@ void  gl_font(int fontid, int size) {
  * then sorting through them at draw time (for normal X rendering) to find which one can
  * render the current glyph... But for now, just use the first font in the list for GL...
  */
-    XFontStruct *font = fl_xfont;
+    XFontStruct *font = fl_X_core_font();
     int base = font->min_char_or_byte2;
     int count = font->max_char_or_byte2-base+1;
     fl_fontsize->listbase = glGenLists(256);
