changeset 103162:cb1886d1427b

(font_update_drivers): Sanity fallback to avoid disabling all drivers.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 06 May 2009 02:57:47 +0000
parents 00f44d8d6bda
children 8dbdd97b2aae
files src/ChangeLog src/font.c
diffstat 2 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Wed May 06 02:51:52 2009 +0000
+++ b/src/ChangeLog	Wed May 06 02:57:47 2009 +0000
@@ -1,5 +1,8 @@
 2009-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* font.c (font_update_drivers): Sanity fallback to avoid disabling
+	all drivers.
+
 	* nsterm.m (-windowDidResize:): Avoid inf-loop under GNUStep.
 
 2009-05-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
--- a/src/font.c	Wed May 06 02:51:52 2009 +0000
+++ b/src/font.c	Wed May 06 02:57:47 2009 +0000
@@ -3655,6 +3655,23 @@
 	  next = &(*next)->next;
 	}
       *next = NULL;
+
+      if (! f->font_driver_list->on)
+	{ /* None of the drivers is enabled: enable them all.
+	     Happens if you set the list of drivers to (xft x) in your .emacs
+	     and then use it under w32 or ns.  */
+	  for (list = f->font_driver_list; list; list = list->next)
+	    {
+	      struct font_driver *driver = list->driver;
+	      eassert (! list->on);
+	      if (! driver->start_for_frame
+		  || driver->start_for_frame (f) == 0)
+		{
+		  font_prepare_cache (f, driver);
+		  list->on = 1;
+		}
+	    }
+	}
     }
 
   for (list = f->font_driver_list; list; list = list->next)