[Bf-committers] FIX: [ #1980 ] Change Font Size, Crash
Jacques Beaurain
jbeaurain at istop.com
Wed Dec 8 11:25:46 CET 2004
Hi,
I figured this one out. Should be able to reproduce on vanilla system on
any platform where you start out without International Fonts switched
on. The crash happened on line 245 of FTF_TTFont.cpp. The reason was
that the SetFont member would not have been called at this stage because
fonts are only refreshed on startup at the moment. Here is a patch that
fixes this.
Cheers,
Jacques
-------------- next part --------------
Index: source/blender/include/BIF_language.h
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/include/BIF_language.h,v
retrieving revision 1.4
diff -u -r1.4 BIF_language.h
--- source/blender/include/BIF_language.h 20 Oct 2003 15:40:18 -0000 1.4
+++ source/blender/include/BIF_language.h 8 Dec 2004 09:59:06 -0000
@@ -35,18 +35,19 @@
struct BMF_Font;
-int read_languagefile(void); /* usiblender.c */
-void free_languagemenu(void); /* usiblender.c */
+int read_languagefile(void); /* language.c */
+void free_languagemenu(void); /* language.c */
-void set_interface_font(char *str); /* headerbuttons.c */
-void start_interface_font(void); /* headerbuttons.c */
-void lang_setlanguage(void); /* usiblender.c */
+void set_interface_font(char *str); /* language.c */
+void start_interface_font(void); /* language.c */
+void refresh_interface_font(void); /* language.c */
+void lang_setlanguage(void); /* language.c */
-char *language_pup(void);
-char *fontsize_pup(void);
+char *language_pup(void); /* language.c */
+char *fontsize_pup(void); /* language.c */
-int BIF_DrawString(struct BMF_Font* font, char *str, int translate);
-float BIF_GetStringWidth(struct BMF_Font* font, char *str, int translate);
+int BIF_DrawString(struct BMF_Font* font, char *str, int translate); /* language.c */
+float BIF_GetStringWidth(struct BMF_Font* font, char *str, int translate); /* language.c */
#endif /* BIF_LANGUAGE_H */
Index: source/blender/src/header_info.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/header_info.c,v
retrieving revision 1.50
diff -u -r1.50 header_info.c
--- source/blender/src/header_info.c 11 Nov 2004 23:58:05 -0000 1.50
+++ source/blender/src/header_info.c 8 Dec 2004 10:07:05 -0000
@@ -900,6 +900,7 @@
BKE_reset_undo();
BKE_write_undo("original"); /* save current state */
+ refresh_interface_font();
}
break;
case 31: /* save default settings */
Index: source/blender/src/language.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/language.c,v
retrieving revision 1.27
diff -u -r1.27 language.c
--- source/blender/src/language.c 8 Nov 2004 15:46:57 -0000 1.27
+++ source/blender/src/language.c 8 Dec 2004 10:07:05 -0000
@@ -348,6 +348,18 @@
}
+void refresh_interface_font(void)
+{
+#ifdef INTERNATIONAL
+ if(U.transopts & USER_DOTRANSLATE)
+ start_interface_font();
+ else
+ G.ui_international = FALSE;
+#else // INTERNATIONAL
+ G.ui_international = FALSE;
+#endif // INTERNATIONAL
+}
+
void free_languagemenu(void)
{
LANGMenuEntry *lme= langmenu;
Index: source/blender/src/usiblender.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/usiblender.c,v
retrieving revision 1.67
diff -u -r1.67 usiblender.c
--- source/blender/src/usiblender.c 4 Dec 2004 17:52:44 -0000 1.67
+++ source/blender/src/usiblender.c 8 Dec 2004 10:07:05 -0000
@@ -149,6 +149,7 @@
undo_editmode_clear();
BKE_reset_undo();
BKE_write_undo("original"); /* save current state */
+ refresh_interface_font();
}
else BIF_undo_push("Import file");
}
@@ -279,13 +280,9 @@
#ifdef INTERNATIONAL
read_languagefile();
-
- if(U.transopts & USER_DOTRANSLATE)
- start_interface_font();
- else
- G.ui_international = FALSE;
#endif // INTERNATIONAL
+ refresh_interface_font();
}
return success;
More information about the Bf-committers
mailing list