0300577a5902b954ce62cf37da348c275d8649d5
[m17n/m17n-lib.git] / src / ChangeLog
1 2004-07-29  Kenichi Handa  <handa@m17n.org>
2
3         * font-flt.c (run_rule, run_command, mfont__flt_run): Print more
4         debugging information.
5
6         * internal.h (MDEBUG_PRINT5): New macro.
7
8         * draw.c (layout_glyphs): Don't combine a zero width glyph with
9         the previous one if the zero width glyph has left or right
10         padding.
11
12 2004-07-26  Kenichi Handa  <handa@m17n.org>
13
14         * m17n-X.c (xft_render): Pay attention to members left_padding and
15         right_padding of MGlyph.
16
17         * draw.c (visual_order): Allocate one more elements for arrays as
18         a workaround of fribidi bug.
19         (layout_glyphs): Fix previous change. Check MGlyph->combining_code
20         instead of MGlyph->bidi_sensitive.
21         (layout_glyph_string): Pay attentinon to
22         control->orientation_reversed when padding at the head or tail.
23         Fix adjustment of space glyph width.
24         (get_gstring): If cursor_width or cursor_bidi is changed, don't
25         use a cache.
26
27         * font-ft.c (mfont__ft_drive_otf): Set MGlyph->combining_code
28         instead of MGlyph->bidi_sensitive.
29
30         * internal-gui.h (MGlyph): Delete member bidi_sensitive.
31
32 2004-07-26  Kenichi Handa  <handa@m17n.org>
33
34         * draw.c (visual_order): Don't treat combined glyphs specially.
35         (layout_glyphs): Don't get metrics glyphs that are already ready.
36         Pay attention to MGlyph->bidi_sensitive.  Combine a glyph of zero
37         width with the previous one. 
38         (draw_background): Fix bar cursor position on a r2l glyph.
39
40         * font-flt.c (FontLayoutCmdOTF): Move back from internal-gui.h.
41         (run_rule): Fix place of updating cluster_begin_pos and
42         cluster_end_pos here.
43         (run_otf): Don't set left_padding.
44
45         * font-ft.c (adjust_anchor): Type of argument `code' changed.
46         Caller changed.
47         (mfont__ft_drive_otf): Renamed back from mfont__ft_drive_gsub.
48         Fix handling of GPOS.
49         (mfont__ft_drive_gpos): Delete this function.
50
51         * font.h (mfont__ft_drive_otf): Renamed back from
52         mfont__ft_drive_gsub.
53         (mfont__ft_drive_gpos): Delete extern.
54
55         * internal-gui.h (FontLayoutCmdOTF): Move back to font-flt.c.
56         (MGlyph): Delete member otf_cmd, add member bidi_sensitive.
57
58 2004-07-23  Kenichi Handa  <handa@m17n.org>
59
60         * draw.c (layout_glyphs): Call mfont__ft_drive_gpos with glyphs of
61         the same bidi level.
62
63         * font-ft.c (mfont__ft_drive_gpos): Check bidi-level.
64
65 2004-07-22  Kenichi Handa  <handa@m17n.org>
66
67         * font-flt.c (load_flt): Treat the symbol Mend as end-of-file.
68
69 2004-07-20  Kenichi Handa  <handa@m17n.org>
70
71         * draw.c (render_glyphs): Fix checking of g->code validity.
72
73         * face.c (mface__realize): Set g.type.
74
75 2004-07-18  Kenichi Handa  <handa@m17n.org>
76
77         * Makefile.am: Prepend ${top_srcdir} to all *.la in
78         *_LIBADD/*_LDADD.
79
80         * m17n-gui.c (mframe): Print error message give by dlopen to
81         stderr.
82
83 2004-07-16  Kenichi Handa  <handa@m17n.org>
84
85         * draw.c (compose_glyph_string): Improve the way of deciding a
86         script.  For a character that doesn't have script property, use
87         the last non-latin script.
88
89         * font-ft.c (fc_list): Cancel previous change.
90         (mfont__ft_init): Add more entries in ft_to_prop_name.
91
92 2004-07-15  Kenichi Handa  <handa@m17n.org>
93
94         * draw.c (mdraw_glyph_list): Add the width of padding glyphs to
95         previous or next character glyphs.
96
97 2004-07-14  Kenichi Handa  <handa@m17n.org>
98
99         * draw.c (compose_glyph_string): Be sure to set codes for glyphs
100         of type GLYPH_SPACE.
101
102         * fontset.c (mfont__lookup_fontset): If glyph type is
103         GLYPH_SPACE, get codes for SPACE.
104
105         * internal-gui.h (Mfont): Delete extern.
106
107         * m17n-gui.h (Mfont): Delete duplicated extern.
108
109 2004-07-13  Kenichi Handa  <handa@m17n.org>
110
111         * font-ft.c (DEVICE_DELTA): New macro.
112         (adjust_anchor): New function.
113         (mfont__ft_drive_gsub): Renamed from mfont__ft_drive_otf.  Drive
114         only GSUB.
115         (mfont__ft_drive_gpos): New function.
116
117         * font-flt.c (FontLayoutCmdOTF): Moved to internal-gui.h.
118         (FontLayoutContext): Delete member `rfont'.
119         (run_otf): Set g->otf_cmd.  Call 
120         (mfont__flt_run): Don't set ctx.rfont.  Call mfont__ft_decode_otf
121         only whne HAVE_OTF is defined.
122
123         * fontset.c: Include "config.h".
124
125         * internal-gui.h (FontLayoutCmdOTF): Moved from font-flt.c.
126         (MGlyph): New member otf_cmd.
127
128         * font.h (mfont__ft_drive_gsub): Changed from mfont__ft_drive_otf.
129         (mfont__ft_drive_gpos): Extern it.
130
131         * face.c: Include "config.h".
132
133         * draw.c (layout_glyphs): Call mfont__ft_drive_gpos.
134
135         * input-gui.c: Include "config.h".
136
137         * plist.c: Include "config.h".
138
139 2004-07-06  Kenichi Handa  <handa@m17n.org>
140
141         * m17n-gui.c, m17n-gui.h, m17n-gd.c, m17n-X.h, m17n-X.c,
142         internal-gui.h: Cancel previous changes.
143
144         * m17n-gd.h: Delete it.
145
146         * Makefile.am (libm17n_core_la_LIBADD): New variable.
147         (libm17n_core_la_LDFLAGS): Add -export-dynamic, move
148         @XML2_LD_FLAGS@ to above.
149         (libm17n_la_LIBADD): Add -ldl.
150         (libm17n_la_LDFLAGS): Add -export-dynamic.
151         (X_LD_FLAGS): Fix the order of linking.
152         (libm17n_gui_la_LIBADD): Add ${OPTIONAL_LD_FLAGS}.
153         (libm17n_gui_la_LDFLAGS): Add -export-dynamic, delete above.
154         (libm17n_X_la_LDFLAGS): Add -module.
155         (libm17n_gd_la_SOURCES): Delete m17n-gd.h.
156         (libm17n_gd_la_LIBADD): Add @GD_LD_FLAGS@.
157         (libm17n_gd_la_LDFLAGS): Add -module.
158         (include_HEADERS): Delete m17n-gd.h.
159
160 2004-06-30  Kenichi Handa  <handa@m17n.org>
161
162         * m17n-gui.c: Adjusted for the change of struct MDeviceDriver.
163         (MDeviceLibraryInterface): Delete it.
164         (register_device_library): Delete it.
165         (m17n__device_library_list): Renamed from device_library_list.
166
167         * m17n-gui.h (M17N_INIT_X, M17N_INIT_GD): New macros.
168         (m17n_init_win): Adjust prototype.
169
170         * m17n-gd.c: Adjusted for the change of struct MDeviceDriver.
171         (m17n_init_gd): New function. 
172
173         * m17n-gd.h: New file.
174
175         * m17n-X.h: Include <m17n-gui.h>.
176         (m17n_init_X): Extern it.
177         (M17N_INIT): Redefine it.
178
179         * m17n-X.c: Adjusted for the change of struct MDeviceDriver.
180         (m17n_init_X): New function.
181
182         * internal-gui.h (m17n__device_library_list): Extern it.
183         (struct MDeviceDriver): New members initialized, init, and fini.
184
185         * Makefile.am (libm17n_X_la_LIBADD): Add ${X_LD_FLAGS} and
186         @XFT2_LD_FLAGS@.
187         (libm17n_X_la_LIBADD): Delete aboves.
188         (libm17n_gd_la_SOURCES): Add m17n-gd.h.
189         (libm17n_gd_la_LIBADD): Add @GD_LD_FLAGS@.
190         (libm17n_gd_la_LDFLAGS): Delete it.
191         (include_HEADERS): Add m17n-gd.h.
192
193 2004-06-25  Kenichi Handa  <handa@m17n.org>
194
195         * Makefile.am (libm17n_X_la_LDFLAGS): Cancel previous change.
196         (libm17n_gd_la_LDFLAGS): Cancel previous change.
197
198         * m17n-gd.c (gd_render): Don't call FT_Get_Char_Index.
199
200         * font-ft.c (fc_list): If FcFontList finds no font, try
201         FcFontMatch.
202
203         * draw.c (compose_glyph_string): Terminate the last loop after
204         doing default combining if necessary.
205
206 2004-06-24  Kenichi Handa  <handa@m17n.org>
207
208         * draw.c (mdraw_glyph_list): Unref gstring->top at the tail.
209
210         * character.c (mchar_define_property): Add const to an arg.
211
212         * charset.c (mchar_define_charset): Add const to an arg.
213
214         * coding.c (MCodingSystem): Add const to an arg or decoder.
215         (finish_decoding): Add const to an arg.
216         (decode_coding_charset, decode_coding_utf_8)
217         (decode_coding_utf_16, decode_coding_utf_32)
218         (decode_coding_iso_2022, decode_coding_sjis)
219         (mconv_define_coding): Likewise.
220
221         * m17n-X.c (xft_find_metric): Delete unused variable.
222
223         * m17n-core.h (mchar_define_property, mtext_from_data): Adjust
224         prototypes.
225
226         * m17n.h (mchar_define_charset, mconv_define_coding): Adjust
227         prototypes.
228
229         * mtext.c (count_utf_8_chars, count_utf_16_chars)
230         (mtext__from_data, mtext_from_data): Add `const' to an arg.
231
232         * mtext.h (mtext__from_data): Ajust prototype.
233
234 2004-06-23  Kenichi Handa  <handa@m17n.org>
235
236         * draw.c (compose_glyph_string): Always get glyph codes by
237         mface__for_char.
238         (mdraw_glyph_info): Set info->glyph_code and info->logical_width.
239         (mdraw_glyph_list): New function.
240
241         * font-flt.c (mfont__flt_run): Be sure to call
242         rfont->driver->encode_char.
243
244         * font-ft.c (ft_find_metric): Don't call FT_Get_Char_Index.
245         (ft_encode_char): Delete arg C.
246         (ft_render): Don't call FT_Get_Char_Index.
247
248         * font.c (mfont__encodable_p): Delete it.
249         (mfont__encode_char): Be sure to call rfont->driver->encode_char.
250
251         * font.h (struct MFontDriver): Delete arg C of encode_char.
252         (mfont__encodable_p): Delete extern.
253
254         * m17n-X.c (xfont_encode_char): Delete arg C.
255         (xft_find_metric): Don't cal FT_Get_Char_Index.
256         (xft_render): Likewise.
257
258         * m17n-gui.h (MDrawGlyphInfo): New members glyph_code and
259         logical_width.
260         (mdraw_glyph_list): Extern it.
261
262         * Makefile.am (libm17n_X_la_LDFLAGS): Don't include ${X_LD_FLAGS}.
263
264 2004-06-22  Kenichi Handa  <handa@m17n.org>
265
266         * m17n-gui.h (mfontset_lookup): Extern it.
267
268         * m17n-gui.c (m17n_init_win): Delete unnecessary printing.
269
270         * fontset.c (realize_fontset_elements)
271         (free_realized_fontset_elements, update_fontset_elements): New
272         functions.
273         (mfont__realize_fontset): Call realize_fontset_elements.
274         (mfont__free_realized_fontset): Call free_realized_fontset_elements.
275         (mfont__lookup_fontset): If a fontset was modified, update
276         the realized fontset.
277         (mfontset_modify_entry): Increment fontset->tick.
278         (mfontset_lookup): New function.
279
280 2004-06-21  Kenichi Handa  <handa@m17n.org>
281
282         * font-ft.c (mfont__ft_parse_name): Cast the arg to FcNameParse.
283
284         * mtext.c (mtext_dup, mtext_cat, mtext_ncat, mtext_cpy)
285         (mtext_ncpy, mtext_duplicate): Pay attention to the case that the
286         length of source text 0.
287
288 2004-06-21  Kenichi Handa  <handa@m17n.org>
289
290         * mtext.c (INC_POSITION): Use CHAR_UNITS_BY_HEAD_UTF16.
291         (compare): Pay attention to format other than utf-8.
292         (copy): Delete this function.
293         (count_by_utf_8, count_by_utf_16, insert): New functions.
294         (count_utf_16_chars): Fix handling of a surrogate pair.
295         (find_char_forward, find_char_backward): Likewise.
296         (mtext__from_data): Delete unnecessary check.  Fix number of
297         allocated bytes.
298         (mtext_from_data): Don't count items.
299         (mtext_ref_char): Optimize the code.
300         (mtext_set_char): Pay attention to format other than utf-8.
301         (mtext_cat_char): Likewise.
302         (mtext_dup): Don't call copy, instead do allocation here.
303         (mtext_cat): Call insert instead of copy.
304         (mtext_ncat): Likewise.
305         (mtext_cpy): Delete character at first and call insert instead of
306         copy.
307         (mtext_ncpy): Likewise.
308         (mtext_copy): Likewise.
309         (mtext_duplicate): Call insert instead of copy.
310         (mtext_del): Pay attention to format other than utf-8.
311         (mtext_ins): Simply call insert.
312         (mtext_ins_char): Pay attention to format other than utf-8.
313         (mtext_tok): Call insert instead of copy.
314         (mtext_text): Call UNIT_BYTES.
315
316         * textprop.c (mtext__adjust_plist_for_change): New function.
317
318         * character.h (USHORT_SIZE, UINT_SIZE, UNIT_BYTES): New macros.
319         (CHAR_UNITS_UTF16, CHAR_UNITS): Simplified.
320         (CHAR_UNITS_AT): Fix typo.
321         (CHAR_UNITS_BY_HEAD): Fix typo.
322         (STRING_CHAR_AND_UNITS): Fix typo.
323
324         * internal.h (MTEXT_READ_ONLY_P): New macro. 
325
326         * mtext.h (mtext__replace): Delete the extern.
327         (mtext__adjust_foramt): Adjust prototype.
328
329         * plist.c (mplist_deserialize): Adjust the format of MT to utf-8
330         if possible.  Otherwise make a copy of mmt.
331
332         * coding.c (mconv_decode, mconv_gets): Adjust the format of MT to
333         utf-8.
334
335 2004-06-18  Kenichi Handa  <handa@m17n.org>
336
337         * character.h (CHAR_STRING_UTF16): Fix syntax.
338
339 2004-06-16  Kenichi Handa  <handa@m17n.org>
340
341         * Makefile.am (libm17n_gd_la_LIBADD): Delete it.
342         (libm17n_X_la_LIBADD): Delete it.
343         (libm17n_gd_la_LDFLAGS): Don't include @GD_LD_FLAGS@.
344
345         * m17n-X.c (device_open): Add parens in `if' condition.
346
347         * mtext.c (INC_POSITION): Handle format other than utf8 and utf16.
348         (DEC_POSITION): Likewise.
349         (compare): Fix case that mt1->format is MTEXT_FORMAT_UTF_8.
350
351 2004-06-15  Kenichi Handa  <handa@m17n.org>
352
353         * fontset.c (mfont__lookup_fontset): Fix selection of font groups
354         by language.
355
356         * draw.c (compose_glyph_string): If langauge is specified, call
357         mface__for_chars even if a text is all latin.  Fix condition for
358         setting non_ascii_found.
359
360         * m17n-X.c (xft_find_metric): Fix setting of g->lbrearing.
361
362         * m17n.h (minput_char_to_key): Delete extern.
363
364         * m17n-gui.h (minput_event_to_key): Cancel previous change.
365
366         * m17n-gui.c (null_device_open): Set several members of frame.
367
368 2004-06-14  Kenichi Handa  <handa@m17n.org>
369
370         * m17n-gui.h (minput_event_to_key): Delete extern.
371
372         * symbol.h (struct MSymbolStruct): Renamed from MSymbol.
373
374         * m17n-core.h (MSymbol): Defined as "struct MSymbolStruct *".
375
376         * Makefile.am (AM_CPPFLAGS): Refer to @M17NDIR@.
377
378 2004-06-08  Kenichi Handa  <handa@m17n.org>
379
380         * character.c (mchar_put_prop): Don't increment the ref-count of
381         record->table.
382
383 2004-06-04  Kenichi Handa  <handa@m17n.org>
384
385         * m17n-core.c (mdebug__register_object): New function.
386         (mdebug__unregister_object): Likewise.
387
388         * internal.h (mdebug__register_object, mdebug__unregister_object):
389         Extern them.
390         (M17N_OBJECT_REGISTER, M17N_OBJECT_UNREGISTER): Call them
391         respectively.
392
393         * charset.c (mcharset__load_from_database): Don't call
394         mconv__register_charset_coding here.
395
396         * coding.c (find_coding): Get a real name from an element of
397         coding_definition_list.
398         (mconv__register_charset_coding): Set the real name at the top of
399         param.
400         (mcoding__load_from_database): Likewise.
401         (mconv_list_codings): Adjusted for the above change.
402
403 2004-06-03  Kenichi Handa  <handa@m17n.org>
404
405         * coding.c (find_coding): Find by canonicalized name.  Don't have
406         to modify the element of coding_definition_list by
407         mplist__from_plist.
408         (mconv__define_coding_from_charset): Delete it.
409         (mconv__register_charset_coding): Canonicalize sym.
410         (mcoding__load_from_database): Register plist modified by
411         mplist__from_plist.
412
413         * coding.h (mconv__define_coding_from_charset): Don't extern it.
414
415         * font-ft.c (ft_open): Fix setting of rfont->descent.
416
417 2004-06-02  Kenichi Handa  <handa@m17n.org>
418
419         * font.c (enum xlfd_field_idx): Moved from m17n-X.c.
420         (xlfd_parse_name): Merge split_font_name and xfont_parse_name.
421         (xlfd_unparse_name): Renamed from xfont_build_name.
422         (mfont__init): Initialized Mfontconfig.
423         (mfont__free_realized): Unconditionally unref rfont->info.
424         (mfont__select): Free `this' if it's not best.
425         (mfont__open): Don't check frame->realized_font_list.
426         (mfont__parse_name_into_font): New function.
427         (Mfontconfig): New variable.
428         (mfont_from_name): Call mfont_parse_name.
429         (mfont_name): Call mfont_unparse_name.
430         (mdebug_dump_font): Likewise.
431
432         * font.h (struct MFontDriver): Delete members parse_name and
433         build_name.
434         (mfont__ft_parse_name, mfont__ft_unparse_name): Extern them.
435         (mfont__parse_name_into_font): Extern it.
436
437         * font-ft.c: Include "symbol.h".
438         (close_ft): Unconditionally free filename and charmap_list of
439         ft_into.
440         (ft_open): Duplicate base->filename.  Increment ref-count of
441         ft_info->charmap_list.  Free ft_info->charmap_list and
442         ft_info->filename on error.
443         (mfont__ft_parse_name, mfont__ft_unparse_name): New functions.
444
445         * m17n-X.c (xfont_driver): Don't include xfont_parse_name and
446         xfont_build_name.
447         (enum xlfd_field_idx): Moved to font.c.
448         (split_font_name, build_font_name): Likewise.
449         (build_font_list): Call mfont__parse_name_info_font.
450         (xfont_open): Call mfont__unparse_name.  Free name.
451         (xfont_parse_name, xfont_build_name): Moved to font.c
452         (xft_select): Prototype deleted.
453         (device_open): Check HAVE_FREETYPE on using mfont__ft_driver.
454         Call mfont_pase_name.
455
456         * m17n-gui.c (free_frame): Unref frame->font_driver_list.
457         (m17n_fini_win): Add check HAVE_FREETYPE on using null_interface.
458         (mframe): Likewise.
459
460         * m17n-gui.h (mfont_parse_name, mfont_unparse_name, Mfontconfig):
461         Extern them.
462
463         * Makefile.am (linkgui_LDADD): Add libm17n-X.la and libm17n-gd.la.
464
465 2004-06-01  Kenichi Handa  <handa@m17n.org>
466
467         * fontset.c (mfontset_modify_entry): Pay attention to the case
468         that fontset->font_spec_list is NULL.
469
470 2004-05-31  Kenichi Handa  <handa@m17n.org>
471
472         * m17n-gui.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
473
474         * input.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
475
476         * font.c (mfont__select): Print score the a font for debugging.
477
478         * Makefile.am (libm17n_la_LIBADD): Delete -ldl.
479
480         * coding.c (reset_coding_sjis): Check kanji and kana instead of
481         kanji_sym and kana_sym.
482
483 2004-05-28  Kenichi Handa  <handa@m17n.org>
484
485         * Makefile.am (VINFO): New variable.
486         (libm17n_core_la_LDFLAGS, libm17n_la_LDFLAGS)
487         (libm17n_gd_la_LDFLAGS): Include ${VINFO}.
488
489 2004-05-27  Kenichi Handa  <handa@m17n.org>
490
491         The following chanages are to make device dependent functions
492         accessible only from MDeviceDriver structure, and to add GD and
493         null device drivers.  Font drivers get also device dependent.
494
495         * m17n.c (m17n_init): Increament shell_initialized.
496         (m17n_fini): Decremented shell_initialized.
497
498         * m17n-misc.h (enum MErrorCode): New element MERROR_GD.
499
500         * m17n-gui.h (Mdevice, Mdisplay, Mscreen, Mdrawable, Mdepth)
501         (Mwidget, Mcolormap, Mx): Extern them.
502
503         * m17n-gui.c: Include <dlfcn.h> and "config.h".
504         (free_frame): Call frame->driver->close instead of
505         mwin__close_device.
506         (DLOPEN_SHLIB_EXT): New macro.
507         (MDeviceLibraryInterface): New type.
508         (device_library_list): New variable.
509         (register_device_library): New function.
510         (null_device): New variable.
511         (null_device_close, null_device_get_prop)
512         (null_device_realize_face, null_device_free_realized_face): New
513         function.
514         (null_driver): New variable.
515         (null_device_init, null_device_fini, null_device_open): New
516         functions.
517         (null_interface): New variable.
518         (Mfreetype, Mdevice): Declare them.
519         (m17n_init_win): Increment win_initialized.  Initialize Mx, Mgd,
520         Mfreetype, Mdevice, Mdisplay, Mscreen, Mdrawable, Mdevice, and
521         Mwin__Close_Device.  Register drivers for Mx and Mgd.
522         (m17n_fini_win): Decremented win_initialized.  Call "fini"
523         function of all opened devices.  Don't call mwin__fini.
524         (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap):
525         Declare them here.
526         (mframe): Handle Mdevice key of PLIST.
527         (mframe_get_prop): Call frame->device->get_prop instead of
528         mwin__device_get_prop.
529
530         * m17n-gd.c: New file.
531
532         * m17n-core.h (M17NLIB_MAJOR_VERSION, M17NLIB_MINOR_VERSION)
533         (M17NLIB_PATCH_LEVEL, M17NLIB_VERSION_NAME): Updated to 1.1.0.
534
535         * m17n-core.c (m17n_init_core): Increate core_initialized.
536         (m17n_fini_core): Decremented core_initialized.
537
538         * m17n-X.h (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget)
539         (Mcolormap): Don't extern them here.
540
541         * m17n-X.c (FRAME_DEVICE): New macro.
542         (FRAME_DISPLAY, FRAME_SCREEN, FRAME_CMAP): Use FRAME_DEVICE.
543         (free_display_info): Use MPLIST_DO.
544         (free_device): Free rface->info.
545         (xft_close): Delete it.
546         (device_init): Renamed from mwin__init.
547         (device_fini): Renamed from mwin__fini.
548         (device_open): Renamed from mwin__open_device.
549         (x_driver): New variable.
550         (MXFontInfo): Delete member frame, add member display.
551         (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap, Mxim):
552         Don't declare them here.
553
554         * internal-gui.h (MDeviceType): New enum.
555         (MWDefice): Delete it.
556         (struct MFrame): Change type of device to void *.  New members
557         device_type, driver, font_driver_list.
558         (M_CHECK_WRITABLE, M_CHECK_READABLE): New macros.
559         (MDeviceDriver): New type.
560         (Mx, Mgd, Mfreetype): Extern them.
561         (mwin__XXX): Delete all of them.
562
563         * input-gui.c (win_create_ic): Call frame->driver->XXX instead of
564         mwin__XXX.
565         (win_destroy_ic): Likewise.
566         (adjust_window_and_draw): Likewise.
567         (win_callback): Likewise.
568         (Mxim): Declare it here.
569         (minput_event_to_key): Call M_CHECK_READABLE.
570
571         * fontset.c (mfont__lookup_fontset): Delete local variable
572         font_group.
573
574         * font.h (struct MFontDriver): Delete member close, add members
575         parse_name and build_name.
576         (mfont__driver_list): Delete extern.
577         (mfont__close): Delete extern.
578
579         * font.c (mfont__init): Don't set mfont__driver_list.
580         (mfont__fini): Don't unref mfont__driver_list.
581         (mfont__select): Try font drivers in frame->font_driver_list.  Set
582         driver member of a realized font.
583         (mfont__close): Delete it.
584         (mfont_from_name, mfont_name, mdebug_dump_font): Call driver
585         functions of the default frame.
586
587         * font-ft.c (close_ft): Check ft_info->ft_face and work
588         differently.
589         (add_font_info): Allocate ft_info by M17N_OBJECT.
590         (ft_close): Delete it.
591         (mfont__ft_driver): Don't set ft_close.
592         (ft_select): Increment ref-count of best_font.
593         (ft_open): Decremented ref-count of base.  On error, call
594         FT_Done_Face and free ft_info.
595         (ft_find_metric): Always use XXX_MONO in load_flags.
596         (ft_render): Fix setting of width.  Call
597         frame->driver->draw_points instead of mwin__draw_points.
598         (ft_to_prop): Don't set mfont__driver_list.
599         (mfont__ft_fini): Just unref ft_info.
600
601         * face.c (mface__init): Exchange foreground and background of
602         mface__default.  Call mface_put_prop to set hline of
603         mface_underline,
604         (mface__realize): Call frame->driver->XXX instead of mwin__XXX.
605         (mface__free_realized): Don't call mwin__free_realized_face.
606
607         * draw.c (Mdepth): Don't declare it here.
608         (draw_background): Call frame->driver->XXX instead of mwin__XXX.
609         (render_glyphs, render_glyph_string): Likewise.
610         (mdraw__init): Don't set Mdepth.
611         (mdraw_text, mdraw_image_text, mdraw_text_with_control): Call
612         M_CHECK_WRITABLE.
613         (mdraw_text_per_char_extents): Return 0 on success and -1 on
614         error.
615         (mdraw_text_items): Check FRAME is writable.
616         (mdraw_per_char_extents): Implement body.
617
618         * Makefile.am (lib_LTLIBRARIES): Include libm17n-gui.la and
619         libm17n-gd.la.
620         (OPTIONAL_LD_FLAGS): Include @FONTCONFIG_LD_FLAGS@.
621         (GUI_SOURCES): Delete it.
622         (libm17n_X_la_SOURCES): Don't include ${GUI_SOURCES}.
623         (libm17n_gui_la_SOURCES, libm17n_gui_la_LIBADD)
624         (libm17n_gui_la_LDFLAGS, libm17n_gd_la_SOURCES)
625         (libm17n_gd_la_LIBADD, libm17n_gd_la_LDFLAGS): New targets.
626         (linkgui_LDADD): Set to libm17n-gui.la
627         (linkgui_LDFLAGS): New target.
628         (SRC): Include ${libm17n_gui_la_SOURCES} and
629         ${libm17n_gd_la_SOURCES}.
630
631 2004-05-24  Kenichi Handa  <handa@m17n.org>
632
633         * draw.c (draw_background): Don't draw background even if
634         rface->face.property[MFACE_BACKGROUND] is not Mnil.
635
636 2004-05-22  Kenichi Handa  <handa@m17n.org>
637
638         * m17n-X.c (xft_open_font): Fix anti_alias setting.
639
640 2004-05-20  Kenichi Handa  <handa@m17n.org>
641
642         * m17n-gui.h (MFaceHookFunc): Change this function type to void.
643
644         * m17n-gui.c: Include "plist.h".
645         (mframe): If PLIST is NULL, initialize it to emply plist.
646
647         * m17n-X.c (build_font_list): Don't set property[MFONT_TYPE].
648         (xft_driver): New variable.
649         (xft_select, close_xft, xft_open_font, xft_open, xft_close)
650         (xft_find_metric, xft_render): New function.
651         (mwin__init): Adjusted for the new mfont__driver_list.
652         (mwin__open_device): Assume arg PARAM is not NULL.  Push a newly
653         generated face to PARAM.
654         (mwin__realize_face): Fix setting of box colors.  Don't call hook
655         function here.
656         (mwin__draw_hline): New function.
657         (mwin__xft_close, mwin__xft_open, mwin__xft_get_metric)
658         (mwin__xft_render): Delete these function.
659
660         * internal-gui.h (struct MFrame): New member tick.
661         (struct MGlyphString): New member tick.
662         (mwin__draw_rect, mwin__draw_empty_boxes): Extern them.
663         (mwin__xft_open, mwin__xft_close, mwin__xft_get_metric)
664         (mwin__xft_render): Delete extern.
665
666         * fontset.c (mfont__lookup_fontset): Make the code simpler.
667         (mfontset): Always increment the reference count of returned
668         object.
669
670         * font-ft.c (mfont__ft_fini): Don't include <otf.h> here.
671         (MFTInfo): Moved to font.h.
672         (ft_iso8859_1_font_list): Delete this variable.
673         (set_font_info): Don't set font->property[MFONT_TYPE].
674         (set_font_info): Don't udpate ft_iso8859_1_font_list.
675         (add_font_info): Change type to void.
676         (fc_list): Change anme from xft_list.  Caller changed.  Include
677         FC_FOUNDRY and FC_PIXEL_SIZE in FcObjectSet.
678         (mfont__ft_driver): Change name from ft_driver.  Caller changed.
679         (ft_select): Check HAVE_FONTCONFIG instead of HAVE_XFT2.
680         (close_ft): Don't call mwin__xft_close.  Unref
681         ft_info->extra_info.
682         (ft_open): Don't setup ft_info->fontname.  Don't call
683         mwin__xft_open.
684         (ft_find_metric): Don't call mwin__xft_get_metric.
685         (ft_encode_char): Call rfont->driver->open instead of ft_open.
686         (ft_render): Don't check HAVE_XFT2.  Don't call mwin__xft_render.
687         (mfont__ft_init): Adjusted for new mfont__driver_list.
688         (mfont__ft_fini): Don't unref ft_iso8859_1_font_list.
689
690         * font.c (mfont__driver_list): Make it MPlist.
691         (mfont__init): Adjust initialization of mfont__driver_list.
692         (mfont__fini): Free mfont__driver_list.
693         (mfont__set_spec_from_face): Don't set spec->property[MFONT_TYPE].
694         (mfont__select): Adjusted for the new mfont__driver_list.
695
696         * font.h (enum MFontProperty): Delete MFONT_TYPE.
697         (mfont__drirver_list): Adjust prototype.
698         (MFTInfo): Move to here from fron.c.  Deleve member fontname.
699
700         * face.h (struct MFace): Delete member realized_face_list, add
701         member frame_list.
702         (struct MRealizedFace): Delete member need_update
703         andnofont_rface, add member non_ascii_list.
704         (mface__update_frame_face): Extern it.
705
706         * face.c (hline_prop_list, box_prop_list, noop_hook): New
707         variables.
708         (get_hline_create, get_box_create): New functions.
709         (find_realized_face): Cancel previous change.  Arg RFONT deleted.
710         Use memcmp.
711         (free_face): Cancep previous change.  Free face->frame_list.
712         (serialize_hline): Do nothing if hline->width is zero.
713         (serialize_box): Do nothing if box->width is zero.
714         (mface__init): Setup all properties of mface__default.
715         (mface__fini): Free hline_prop_list and box_prop_list.
716         (mface__realize): Cancel previous change.  Update
717         face->frame_list.  Setup rface->non_ascii_list.
718         (mface__for_chars): Update rface->non_ascii_list.
719         (mface__free_realized): Free rface->non_ascii_list.
720         (mface__update_frame_face): New function.
721         (mface): Initialize face->frame_list.
722         (mface_copy): Likewise.  Just copy MFACE_HLINE and MFACE_BOX
723         properties.
724         (mface_merge): Likewise.
725         (mface_put_prop): If key is Mhline or Mbox, get value by
726         get_hline_create or get_box_create respectively.
727         (mface_put_prop): Update frame->tick and call
728         mface__update_frame_face if necessary.
729         (mface_update): Do nothing if func is noop_hook.
730
731         * draw.c (render_glyphs): If a font is not found, use
732         mwin__draw_empty_boxes.
733         (alloc_gstring): Initialize gstring->tick.
734         (get_gstring): Check gstring->tick.
735
736 2004-05-17  Kenichi Handa  <handa@m17n.org>
737
738         * face.c (find_realized_face): Return value changed.  If RFONT is
739         NULL, avoid unnecessary checking.
740         (free_face): Free face->realized_face_list.
741         (mface__realize): Adjusted for the change of find_realized_face.
742         If it returns a realized face that needs update, free it and
743         realize a new one.  Push a new realized face to
744         frame->realized_face_list instead of appending.
745         (mface__for_chars): Adjusted for the change of find_realized_face.
746         Short cut if the required font is in rface->ascii_rface.
747         (mface_put_prop): Free old value if necessary.  Set need_update
748         member of realized faces to 1.
749
750         * face.h (struct MFace): Delete member tick, add member
751         realized_face_list.
752         (struct MRealizedFace): Delete member tick, add member
753         need_update.
754
755 2004-05-13  Kenichi Handa  <handa@m17n.org>
756
757         * m17n-X.c (mwin__xft_open): Destroy unnecessary patterns.
758
759 2004-05-12  Kenichi Handa  <handa@m17n.org>
760
761         * internal-gui.h (mwin__xft_open): Arguemnt name changed.
762
763         * m17n-X.c (mwin__xft_open): Argument changed to fontname and
764         parse it XftNameParse.
765
766         * font-ft.c (MFTInfo) [HAVE_XFT2]: New member fontname.
767         (all_fonts_scaned): New variable.
768         (set_font_info): FAMILY may be Mnil.
769         (add_font_info): Argument changed.
770         (xft_list): Call add_font_info in it.
771         (ft_list): Likewise.
772         (ft_select): Make it work in the case family is Mnil.
773         (ft_open) [HAVE_XFT2]: Setup ft_info->fontname.
774         (mfont__ft_fini): Set all_fonts_scaned to 0.
775
776         * fontset.c (mfont__lookup_fontset): Don't repeatedly try a font
777         that is failed to open.
778
779 2004-05-10  Kenichi Handa  <handa@m17n.org>
780
781         * m17n-X.c (mwin__xft_render): Don't use anti-alias if the
782         device's depth is 1 (i.e. monochrome).
783
784         * Makefile.am (OPTIONAL_LD_FLAGS): Change the order of elements
785         to work around the problem of libtool.
786
787         * font-ft.c: Include <freetype/ftbdf.h>.
788         (Municode_bmp, Municode_full, Miso10646_1, Miso8859_1): New
789         variables.
790         (mfont__ft_init): Initialize them.
791         (ft_iso8859_1_font_list): New variable.
792         (set_font_info): Detect a font containing iso8859-1 glyphs and
793         register it in ft_iso8859_1_font_list.  If the font is not
794         scalable, assume it as BDF or PCF font and setup SIZE and RESY
795         properties of the font from its properties.
796         (add_font_list): If the font is not scalable, check if it is BDF
797         or PCF font.  If not, ignore it.
798         (ft_select): If FAMILY is Mnil, return NULL only if the requested
799         registry is not iso8859-1.
800         (ft_select) [not HAVE_XFT2]: If FAMILY is Mnil, select one from
801         ft_iso8859_1_font_list.
802         (ft_find_metric): If the font is not scalable, assume it as BDF
803         or PCF, and get a metric from its properties.
804         (mfont__ft_fini): Free ft_iso8859_1_font_list.
805
806 2004-05-07  Kenichi Handa  <handa@redhat.m17n.org>
807
808         * Makefile.am (libm17n_la_LIBADD): Include -ldl.
809         (libm17n_la_LDFLAGS): Delete it.
810         (noinst_PROGRAMS): Renamed from bin_PROGRAMS.
811         (install-binPROGRAMS, uninstall-binPROGRAMS): Delete them.
812
813 2004-05-06  Kenichi Handa  <handa@m17n.org>
814
815         * draw.c (compose_glyph_string): Fix previous change.
816
817 2004-04-30  Kenichi Handa  <handa@m17n.org>
818
819         * font-ft.c (ft_list): Delete unused variable `result'.
820         (ft_render): Fix for the case that bitmap.pitch < bitmap.width.
821
822 2004-04-27  Kenichi Handa  <handa@m17n.org>
823
824         * m17n-X.c: Include config.h
825         [HAVE_XFT2]: Include <X11/Xft/Xft.h>.
826         (GCInfo) [HAVE_XFT2]: New member xft_color_fore, xft_color_back.
827         (MWDevice) [HAVE_XFT2]: New member xft_draw.
828         (FRAME_CMAP, FRAME_VISUAL): New macros.
829         (free_device) [HAVE_XFT2]: Destroy device->xft_draw.
830         (xfont_driver): Make it static.
831         (mwin__open_device) [HAVE_XFT2]: Setup device->xft_draw.
832         (mwin__realize_face) [HAVE_XFT2]: Setup info->xft_color_fore and
833         info->xft_color_back.
834         (MXftFontInfo) [HAVE_XFT2]: New type.
835         (mwin__xft_close) [HAVE_XFT2]: New function.
836         (mwin__xft_open) [HAVE_XFT2]: New function.
837         (mwin__xft_get_metric) [HAVE_XFT2]: New function.
838         (mwin__xft_render) [HAVE_XFT2]: New function.
839
840         * internal-gui.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
841         (mwin__xft_open, mwin__xft_close) [HAVE_FREETYPE]: New externs.
842         (mwin__xft_get_metric, mwin__xft_render) [HAVE_FREETYPE]: New
843         externs.
844
845         * font.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
846
847         * font-ft.c: Don't include FT_FREETYPE_H here.
848         [HAVE_XFT2]: Include <fontconfig/fontconfig.h>.
849         (fontconfig_initialized, fc_config) [HAVE_XFT2]: New variables.
850         (MFTInfo): New member charmap_index.
851         (MFTInfo) [HAVE_XFT2]: New member xft_info.
852         (check_otf_filename): Renamed from check_filename.  Return value
853         changed.
854         (ft_set_property): This function deleted.
855         (set_font_info): New function.
856         (add_font_list): Argument changed.  Add multiple fonts.
857         (xft_list) [HAVE_XFT2]: New function.
858         (ft_list) [not HAVE_XFT2]: New function.
859         (ft_select): Add code for Xft.
860         (close_ft): Likewise.
861         (ft_open): Likewise.
862         (ft_find_metric): Likewise.
863         (ft_encode_char): Likewise.
864         (ft_render): Likewise.
865
866         * makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@.
867
868 2004-04-26  Kenichi Handa  <handa@m17n.org>
869
870         * textprop.c (mtext_attach_property): Declare the return type as
871         `int'.
872
873 2004-04-21  Kenichi Handa  <handa@m17n.org>
874
875         * Makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@
876
877 2004-04-09  Kenichi Handa  <handa@m17n.org>
878
879         * font-flt.c (struct): New members seq_beg, seq_end, seq_from,
880         seq_to.
881         (load_command): Setup above members.
882
883 2004-04-05  Kenichi Handa  <handa@m17n.org>
884
885         * m17n-X.c (xfont_encode_char): Fix checking of byte1 and byte2.
886
887 2004-03-30  Kenichi Handa  <handa@m17n.org>
888
889         * m17n-X.c (xfont_encode_char): Return MCHAR_INVALID_CODE if code
890         >= 0x10000.
891
892         * m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 2.
893         (M17NLIB_VERSION_NAME): Changed to 1.0.2.
894
895 2004-03-29  Kenichi Handa  <handa@m17n.org>
896
897         * Version 1.0 Patch Level 2 released.
898
899 2004-03-29  Kenichi Handa  <handa@m17n.org>
900
901         * charset.c (make_charset): Set charset->fully_loaded and
902         charset->simple correctly.  Don't try to get charset->min_char and
903         charset->max_char for a charset of method subset and superset.
904         Don't load a mapping file here.
905         (mcharset__init): Set unified_max.
906         (mcharset__load_from_database): Free a working plist.
907
908         * coding.c (mcoding__fini): Free all malloced data.
909
910         * input-gui.c (win_create_ic): Set control.as_image for preediting
911         to 0.
912
913         * internal.h (M17N_OBJECT_REGISTER): Check the member `used' (not
914         `count') to initialize the array.
915
916         * locale.c (mlocale_set): Fix the order of M17N_OBJECT_REF and
917         M17N_OBJECT_UNREF.
918
919         * m17n-X.c (xfont_render): If rface->rfont is null, draw a
920         rectangle.
921         (mwin__create_window): Fix bug of setting a background pixel of a
922         new window.
923         (mwin__adjust_window): Clear the window before drawing.
924
925         * m17n-core.c (mdebug__report_object): Free array->objectes if
926         necessary.
927         (m17n_init_core): Don't set report_header_printed to 0 here.
928         Fix debugging information.
929         (m17n_fini_core): Set report_header_printed to 0 here.
930
931         * m17n-core.h (mplist_deserialize): Extern it.
932
933         * m17n-gui.c (m17n_fini_win): Fix debugging information.
934
935         * m17n.c (m17n_fini): Fix debugging information.
936
937         * mtext.c (mtext__adjust_foramt): New function.
938
939         * mtext.h (mtext__adjust_foramt): Extern it.
940
941         * plist.c (mplist_deserialize): Renamed from mplist__deserialize.
942
943         * plist.h (mplist__deserialize): Don't extern it.
944
945         * symbol.c (msymbol__fini): Set freed_symbols to 0.  Set all
946         elements of symbol_table to NULL.  Report about created and freed
947         symbols if MDEBUG_FINI is set.
948
949 2004-03-22  Kenichi Handa  <handa@m17n.org>
950
951         * m17n-core.c (m17n_init_core): Set merror_code to MERROR_NONE.
952
953         * m17n.c (m17n_init): Fix the way of checking merror_code.
954
955         * m17n-gui.c (m17n_init_win): Fix the way of checking merror_code.
956
957 2004-03-22  Kenichi Handa  <handa@m17n.org>
958
959         * fontset.c (realize_font_group): Adjust the font size by
960         mfont__resize before selecting a font.
961
962         * font-ft.c (mfont__ft_init): Add oblique and boldoblique.
963
964 2004-03-19  Kenichi Handa  <handa@m17n.org>
965
966         * Version 1.0 Patch Level 1 released.
967
968 2004-03-19  Kenichi Handa  <handa@m17n.org>
969
970         * m17n-core.h (M17NLIB_PATCH_LEVEL): New macro.
971
972         * m17n-core.c (M17NLIB_PATCH_LEVEL): Describe it.
973
974 2004-03-19  Kenichi Handa  <handa@m17n.org>
975
976         Re-apply the changes forgotten in the released version.
977
978         * charset.c (mcharset__load_from_database): Call
979         mchar_define_charset.
980
981         * coding.c (encode_unsupporeted_char): Put Mcoding text property.
982         (mconv_encode_range): Put Mcoding text property.
983
984 2004-03-18  Kenichi Handa  <handa@m17n.org>
985
986         * draw.c (Mdepth): New variable.
987         (visual_order): Delete unused local var `pos'.
988         (compose_glyph_string): Fix for the case that gstring->glyphs is
989         realloced.  Stop generating glyphs at TO.  Fix handling of
990         control charaters.
991         (layout_glyphs): Get metrics of all glyphs in advance.  Set
992         lbearing and rbearing of base of composition glyph correctly.
993         Handle left-overhang glyphs correctly.
994         (alloc_gstring): New arg frame.  Set gstring->anti_alias.  Caller
995         changed.
996         (dump_combining_code): Change the defualt off_x character to ".".
997         (mdraw__init): Initialize Mdepth.
998
999         * face.c (work_gstring): New variable
1000         (mface__init): Initialize work_gstring.
1001         (mface__fini): Free work_gstring.glyphs.
1002         (mface__realize): Don't handle videomode property here.  Adjusted
1003         for the change of mfont__get_metric.
1004         (mface__for_chars): Adjusted for the change of mfont__get_metric.
1005
1006         * face.h (enum face_gc): Moved to m17n-X.c.
1007
1008         * font.h (struct MFontDriver): Arguments of find_metric changed.
1009         (mfont__select): Prototype adjusted.
1010         (mfont__get_metric): Likewise.
1011         (mfont__ft_drive_otf): Likewise.
1012         (mfont__flt_run): Likewise.
1013         
1014         * font.c (mfont__select): New argument layouter.  If layouter is
1015         different in the registered font, make a new copy of realized
1016         font.
1017         (mfont__get_metric): Argument changed.  Get metrics of multiple
1018         glyphs.
1019         (mfont_find): Call mfont__select with layouter as Mnil.
1020
1021         * font-flt.c (FontLayoutContext): New member rfont.
1022         (run_otf): Adjusted for the change of mfont__ft_drive_otf.
1023         (mfont__flt_run): Argument changed.  Initialize ctx.rfont.
1024
1025         * font-ft.c (ft_find_metric): Arguments changed.  Get metrics of
1026         multiple glyphs.
1027         (NUM_POINTS): New macro.
1028         (MPointTable): New type.
1029         (ft_render): Use mwin__draw_points instead of mwin__draw_bitmap.
1030         (mfont__ft_drive_otf): New argument rfont.
1031
1032         * fontset.c (realize_font_group): Adjusted for the changed of
1033         mfont__select.
1034         (check_fontset_element): This function deleted.
1035
1036         * input-gui.c (adjust_window_and_draw): Locate a preedit window
1037         off the parent window if the preedit text is zero length.
1038
1039         * internal-gui.h (struct MFrame): New members foreground,
1040         background, videomode, font.
1041         (struct MGlyphString): New member anti_alias.
1042         (MDrawPoint): New type.
1043         (mwin__draw_bitmap): Prototype deleted.
1044         (mwin__draw_points): Prototype added.
1045
1046         * m17n-gui.h (MDrawControl): New member anti_alias.
1047
1048         * m17n-gui.c (free_frame): Free frame->font.
1049         (mframe): Set the fontset of frame->face to the default fontset.
1050
1051         * m17n-X.c (RGB_GC): New type.
1052         (enum gc_index): Renamed from enum face_gc.  Member names changed.
1053         (GCInfo): New typel
1054         (struct MWDevice): Members foreground and background deleted.  New
1055         member scratch_gc, gc_list.
1056         (DEFAULT_FONT, FALLBACK_FONT): New macros.
1057         (free_device): Free GCs in device->gc_list.
1058         (get_rgb_gc): New function.
1059         (get_gc): Renamed and argument changed from get_color.
1060         (get_gc_for_anti_alias): New function.
1061         (xfont_find_metric): Arguments changed.  Get metrics of multiple
1062         glyphs.
1063         (set_region): Argument changed.  Caller changed.
1064         (xfont_render): Allways set a font in gc.
1065         (x_error_handler, x_io_error_handler): Define only if
1066         X_SET_ERROR_HANDLER is defined.
1067         (mwin__open_device): Create device->scratch_gc.  Set members
1068         foreground, background, and videomode of frame.  Call
1069         XSetErrorHandler and XSetIOErrorHandler only if
1070         X_SET_ERROR_HANDLER is defined.
1071         (struct gc_list): Deleted.
1072         (REGISTER_GC, UNREGISTER_GC): These macros deleted.
1073         (mwin__realize_face): Adjusted for the change of the format of
1074         rface->info and the charge of set_region.
1075         (mwin__free_realized_face, mwin__fill_space, mwin__draw_hline)
1076         (mwin__draw_box): Likewise.
1077         (mwin__draw_bitmap): This function deleted.
1078         (mwin__draw_points): New function.
1079         (mwin__verify_region): Adjusted for the change of the format of
1080         rface->info and the charge of set_region.
1081         (mwin__create_window): Inherit backgound pixel from parent.
1082         (mwin__dump_gc): Adjusted for the change of the format of
1083         rface->info.
1084
1085 2004-03-16  Kenichi Handa  <handa@m17n.org>
1086
1087         * m17n-X.c (mwin__parse_event): Fix handling of modifier keys.
1088
1089         * input.c (M_key_alias): New variable.
1090         (handle_key): Try M_key_alias property of a key too.
1091         (minput__init): Initialize M_key_alias.  Give that property to
1092         symbols in one_char_symbol.  Fix bug of initializing
1093         one_char_symbol.
1094
1095         * draw.c (compose_glyph_string): Don't handle
1096         ignore_formatting_char here.  Include formatting characters in the
1097         range processed by a FTL.
1098         (layout_glyph_string): Handle ignore_formatting_char here.
1099
1100 2004-03-12  Kenichi Handa  <handa@m17n.org>
1101
1102         * input-gui.c (win_create_ic): Enable bidi in status control.
1103
1104         * draw.c (visual_order): Avoid re-ordering of combining glyphs only.
1105
1106 2004-03-09  Kenichi Handa  <handa@m17n.org>
1107
1108         * input.c (load_input_method): If title is not specified, use the
1109         input method name as title.
1110
1111         * m17n-X.c (get_color): Make it static.
1112         (xim_create_ic, xim_destroy_ic, x_error_handler)
1113         (x_io_error_handler): Likewise.
1114
1115 2004-03-01  Kenichi Handa  <handa@m17n.org>
1116
1117         * Version 1.0 released.
1118
1119 \f
1120 Copyright (C) 2003, 2004
1121   National Institute of Advanced Industrial Science and Technology (AIST)
1122   Registration Number H15PRO112
1123
1124 This file is part of the m17n library.
1125
1126 The m17n library is free software; you can redistribute it and/or
1127 modify it under the terms of the GNU Lesser General Public License
1128 as published by the Free Software Foundation; either version 2.1 of
1129 the License, or (at your option) any later version.
1130
1131 The m17n library is distributed in the hope that it will be useful,
1132 but WITHOUT ANY WARRANTY; without even the implied warranty of
1133 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1134 Lesser General Public License for more details.
1135
1136 You should have received a copy of the GNU Lesser General Public
1137 License along with the m17n library; if not, write to the Free
1138 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1139 02111-1307, USA.