決して暇なわけではないが(むしろ現実逃避に近い?)、今のままではあまりに使いにくいのと、気持ち悪いのと、新しいバージョンが出たのとを動機にして、gtk+ のフォントセレクターのエントリーウイジェットで日本語が表示されない問題を調べた。gtk/gtkfontsel.c の著者の意図にそぐわない、全く場当たり的なダーティーパッチ(いつもか)であるが、2バイトフォントが指定された際には gdk_font_load でなく、gdk_fontset_load を呼ぶことで、gimp のテキスト入力ダイアログで、取り合えず入力した日本語が表示されない問題はなくなる。
以下に、パッチを引用する。
---<ここから>----
diff -uNr gtk+-1.2.3.orig/gtk/gtkfontsel.c gtk+-1.2.3/gtk/gtkfontsel.c
--- gtk+-1.2.3.orig/gtk/gtkfontsel.c Tue May
11 11:31:08 1999
+++ gtk+-1.2.3/gtk/gtkfontsel.c Wed Jul 7 10:34:01 1999
@@ -1746,7 +1746,8 @@
gtk_font_selection_load_font (GtkFontSelection *fontsel)
{
GdkFont *font;
- gchar *fontname, *label_text;
+ gchar *fontname, *label_text, *tmpfontname;
+ XFontStruct *xfs;
if (fontsel->font)
gdk_font_unref (fontsel->font);
@@ -1763,6 +1764,13 @@
g_message("Loading: %s\n",
fontname);
#endif
font = gdk_font_load (fontname);
+ xfs = GDK_FONT_XFONT(font);
+ if (xfs->min_byte1 != 0 || xfs->max_byte1
!= 0) {
+ tmpfontname =
fontname;
+ fontname = g_strdup_printf("%s,*",tmpfontname);
+ g_free(tmpfontname);
+ font = gdk_fontset_load
(fontname);
+ }
g_free(fontname);
if (font)
diff -uNr gtk+-1.2.3.orig/gtk/gtkstyle.c gtk+-1.2.3/gtk/gtkstyle.c
--- gtk+-1.2.3.orig/gtk/gtkstyle.c
Wed Apr 14 05:20:09 1999
+++ gtk+-1.2.3/gtk/gtkstyle.c Wed Jul 7 09:39:41
1999
@@ -407,7 +407,7 @@
if (!default_font)
{
default_font =
- gdk_font_load ("-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*");
+ gdk_fontset_load ("-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*,*");
if (!default_font)
default_font = gdk_font_load
("fixed");
if (!default_font)
---<ここまで>----
glib と gtk+ の SPEC とパッチはそれぞれ SPECS
と SOURCES ディレクトリーに置いた。