89a8f4f76d34f89c06e3904b975b3aa236159da3
[m17n/m17n-lib.git] / src / ChangeLog
1 2004-05-31  Kenichi Handa  <handa@m17n.org>
2
3         * m17n-gui.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
4
5         * input.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
6
7         * font.c (mfont__select): Print score the a font for debugging.
8
9         * Makefile.am (libm17n_la_LIBADD): Delete -ldl.
10
11         * coding.c (reset_coding_sjis): Check kanji and kana instead of
12         kanji_sym and kana_sym.
13
14 2004-05-28  Kenichi Handa  <handa@m17n.org>
15
16         * Makefile.am (VINFO): New variable.
17         (libm17n_core_la_LDFLAGS, libm17n_la_LDFLAGS)
18         (libm17n_gd_la_LDFLAGS): Include ${VINFO}.
19
20 2004-05-27  Kenichi Handa  <handa@m17n.org>
21
22         The following chanages are to make device dependent functions
23         accessible only from MDeviceDriver structure, and to add GD and
24         null device drivers.  Font drivers get also device dependent.
25
26         * m17n.c (m17n_init): Increament shell_initialized.
27         (m17n_fini): Decremented shell_initialized.
28
29         * m17n-misc.h (enum MErrorCode): New element MERROR_GD.
30
31         * m17n-gui.h (Mdevice, Mdisplay, Mscreen, Mdrawable, Mdepth)
32         (Mwidget, Mcolormap, Mx): Extern them.
33
34         * m17n-gui.c: Include <dlfcn.h> and "config.h".
35         (free_frame): Call frame->driver->close instead of
36         mwin__close_device.
37         (DLOPEN_SHLIB_EXT): New macro.
38         (MDeviceLibraryInterface): New type.
39         (device_library_list): New variable.
40         (register_device_library): New function.
41         (null_device): New variable.
42         (null_device_close, null_device_get_prop)
43         (null_device_realize_face, null_device_free_realized_face): New
44         function.
45         (null_driver): New variable.
46         (null_device_init, null_device_fini, null_device_open): New
47         functions.
48         (null_interface): New variable.
49         (Mfreetype, Mdevice): Declare them.
50         (m17n_init_win): Increment win_initialized.  Initialize Mx, Mgd,
51         Mfreetype, Mdevice, Mdisplay, Mscreen, Mdrawable, Mdevice, and
52         Mwin__Close_Device.  Register drivers for Mx and Mgd.
53         (m17n_fini_win): Decremented win_initialized.  Call "fini"
54         function of all opened devices.  Don't call mwin__fini.
55         (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap):
56         Declare them here.
57         (mframe): Handle Mdevice key of PLIST.
58         (mframe_get_prop): Call frame->device->get_prop instead of
59         mwin__device_get_prop.
60
61         * m17n-gd.c: New file.
62
63         * m17n-core.h (M17NLIB_MAJOR_VERSION, M17NLIB_MINOR_VERSION)
64         (M17NLIB_PATCH_LEVEL, M17NLIB_VERSION_NAME): Updated to 1.1.0.
65
66         * m17n-core.c (m17n_init_core): Increate core_initialized.
67         (m17n_fini_core): Decremented core_initialized.
68
69         * m17n-X.h (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget)
70         (Mcolormap): Don't extern them here.
71
72         * m17n-X.c (FRAME_DEVICE): New macro.
73         (FRAME_DISPLAY, FRAME_SCREEN, FRAME_CMAP): Use FRAME_DEVICE.
74         (free_display_info): Use MPLIST_DO.
75         (free_device): Free rface->info.
76         (xft_close): Delete it.
77         (device_init): Renamed from mwin__init.
78         (device_fini): Renamed from mwin__fini.
79         (device_open): Renamed from mwin__open_device.
80         (x_driver): New variable.
81         (MXFontInfo): Delete member frame, add member display.
82         (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap, Mxim):
83         Don't declare them here.
84
85         * internal-gui.h (MDeviceType): New enum.
86         (MWDefice): Delete it.
87         (struct MFrame): Change type of device to void *.  New members
88         device_type, driver, font_driver_list.
89         (M_CHECK_WRITABLE, M_CHECK_READABLE): New macros.
90         (MDeviceDriver): New type.
91         (Mx, Mgd, Mfreetype): Extern them.
92         (mwin__XXX): Delete all of them.
93
94         * input-gui.c (win_create_ic): Call frame->driver->XXX instead of
95         mwin__XXX.
96         (win_destroy_ic): Likewise.
97         (adjust_window_and_draw): Likewise.
98         (win_callback): Likewise.
99         (Mxim): Declare it here.
100         (minput_event_to_key): Call M_CHECK_READABLE.
101
102         * fontset.c (mfont__lookup_fontset): Delete local variable
103         font_group.
104
105         * font.h (struct MFontDriver): Delete member close, add members
106         parse_name and build_name.
107         (mfont__driver_list): Delete extern.
108         (mfont__close): Delete extern.
109
110         * font.c (mfont__init): Don't set mfont__driver_list.
111         (mfont__fini): Don't unref mfont__driver_list.
112         (mfont__select): Try font drivers in frame->font_driver_list.  Set
113         driver member of a realized font.
114         (mfont__close): Delete it.
115         (mfont_from_name, mfont_name, mdebug_dump_font): Call driver
116         functions of the default frame.
117
118         * font-ft.c (close_ft): Check ft_info->ft_face and work
119         differently.
120         (add_font_info): Allocate ft_info by M17N_OBJECT.
121         (ft_close): Delete it.
122         (mfont__ft_driver): Don't set ft_close.
123         (ft_select): Increment ref-count of best_font.
124         (ft_open): Decremented ref-count of base.  On error, call
125         FT_Done_Face and free ft_info.
126         (ft_find_metric): Always use XXX_MONO in load_flags.
127         (ft_render): Fix setting of width.  Call
128         frame->driver->draw_points instead of mwin__draw_points.
129         (ft_to_prop): Don't set mfont__driver_list.
130         (mfont__ft_fini): Just unref ft_info.
131
132         * face.c (mface__init): Exchange foreground and background of
133         mface__default.  Call mface_put_prop to set hline of
134         mface_underline,
135         (mface__realize): Call frame->driver->XXX instead of mwin__XXX.
136         (mface__free_realized): Don't call mwin__free_realized_face.
137
138         * draw.c (Mdepth): Don't declare it here.
139         (draw_background): Call frame->driver->XXX instead of mwin__XXX.
140         (render_glyphs, render_glyph_string): Likewise.
141         (mdraw__init): Don't set Mdepth.
142         (mdraw_text, mdraw_image_text, mdraw_text_with_control): Call
143         M_CHECK_WRITABLE.
144         (mdraw_text_per_char_extents): Return 0 on success and -1 on
145         error.
146         (mdraw_text_items): Check FRAME is writable.
147         (mdraw_per_char_extents): Implement body.
148
149         * Makefile.am (lib_LTLIBRARIES): Include libm17n-gui.la and
150         libm17n-gd.la.
151         (OPTIONAL_LD_FLAGS): Include @FONTCONFIG_LD_FLAGS@.
152         (GUI_SOURCES): Delete it.
153         (libm17n_X_la_SOURCES): Don't include ${GUI_SOURCES}.
154         (libm17n_gui_la_SOURCES, libm17n_gui_la_LIBADD)
155         (libm17n_gui_la_LDFLAGS, libm17n_gd_la_SOURCES)
156         (libm17n_gd_la_LIBADD, libm17n_gd_la_LDFLAGS): New targets.
157         (linkgui_LDADD): Set to libm17n-gui.la
158         (linkgui_LDFLAGS): New target.
159         (SRC): Include ${libm17n_gui_la_SOURCES} and
160         ${libm17n_gd_la_SOURCES}.
161
162 2004-05-24  Kenichi Handa  <handa@m17n.org>
163
164         * draw.c (draw_background): Don't draw background even if
165         rface->face.property[MFACE_BACKGROUND] is not Mnil.
166
167 2004-05-22  Kenichi Handa  <handa@m17n.org>
168
169         * m17n-X.c (xft_open_font): Fix anti_alias setting.
170
171 2004-05-20  Kenichi Handa  <handa@m17n.org>
172
173         * m17n-gui.h (MFaceHookFunc): Change this function type to void.
174
175         * m17n-gui.c: Include "plist.h".
176         (mframe): If PLIST is NULL, initialize it to emply plist.
177
178         * m17n-X.c (build_font_list): Don't set property[MFONT_TYPE].
179         (xft_driver): New variable.
180         (xft_select, close_xft, xft_open_font, xft_open, xft_close)
181         (xft_find_metric, xft_render): New function.
182         (mwin__init): Adjusted for the new mfont__driver_list.
183         (mwin__open_device): Assume arg PARAM is not NULL.  Push a newly
184         generated face to PARAM.
185         (mwin__realize_face): Fix setting of box colors.  Don't call hook
186         function here.
187         (mwin__draw_hline): New function.
188         (mwin__xft_close, mwin__xft_open, mwin__xft_get_metric)
189         (mwin__xft_render): Delete these function.
190
191         * internal-gui.h (struct MFrame): New member tick.
192         (struct MGlyphString): New member tick.
193         (mwin__draw_rect, mwin__draw_empty_boxes): Extern them.
194         (mwin__xft_open, mwin__xft_close, mwin__xft_get_metric)
195         (mwin__xft_render): Delete extern.
196
197         * fontset.c (mfont__lookup_fontset): Make the code simpler.
198         (mfontset): Always increment the reference count of returned
199         object.
200
201         * font-ft.c (mfont__ft_fini): Don't include <otf.h> here.
202         (MFTInfo): Moved to font.h.
203         (ft_iso8859_1_font_list): Delete this variable.
204         (set_font_info): Don't set font->property[MFONT_TYPE].
205         (set_font_info): Don't udpate ft_iso8859_1_font_list.
206         (add_font_info): Change type to void.
207         (fc_list): Change anme from xft_list.  Caller changed.  Include
208         FC_FOUNDRY and FC_PIXEL_SIZE in FcObjectSet.
209         (mfont__ft_driver): Change name from ft_driver.  Caller changed.
210         (ft_select): Check HAVE_FONTCONFIG instead of HAVE_XFT2.
211         (close_ft): Don't call mwin__xft_close.  Unref
212         ft_info->extra_info.
213         (ft_open): Don't setup ft_info->fontname.  Don't call
214         mwin__xft_open.
215         (ft_find_metric): Don't call mwin__xft_get_metric.
216         (ft_encode_char): Call rfont->driver->open instead of ft_open.
217         (ft_render): Don't check HAVE_XFT2.  Don't call mwin__xft_render.
218         (mfont__ft_init): Adjusted for new mfont__driver_list.
219         (mfont__ft_fini): Don't unref ft_iso8859_1_font_list.
220
221         * font.c (mfont__driver_list): Make it MPlist.
222         (mfont__init): Adjust initialization of mfont__driver_list.
223         (mfont__fini): Free mfont__driver_list.
224         (mfont__set_spec_from_face): Don't set spec->property[MFONT_TYPE].
225         (mfont__select): Adjusted for the new mfont__driver_list.
226
227         * font.h (enum MFontProperty): Delete MFONT_TYPE.
228         (mfont__drirver_list): Adjust prototype.
229         (MFTInfo): Move to here from fron.c.  Deleve member fontname.
230
231         * face.h (struct MFace): Delete member realized_face_list, add
232         member frame_list.
233         (struct MRealizedFace): Delete member need_update
234         andnofont_rface, add member non_ascii_list.
235         (mface__update_frame_face): Extern it.
236
237         * face.c (hline_prop_list, box_prop_list, noop_hook): New
238         variables.
239         (get_hline_create, get_box_create): New functions.
240         (find_realized_face): Cancel previous change.  Arg RFONT deleted.
241         Use memcmp.
242         (free_face): Cancep previous change.  Free face->frame_list.
243         (serialize_hline): Do nothing if hline->width is zero.
244         (serialize_box): Do nothing if box->width is zero.
245         (mface__init): Setup all properties of mface__default.
246         (mface__fini): Free hline_prop_list and box_prop_list.
247         (mface__realize): Cancel previous change.  Update
248         face->frame_list.  Setup rface->non_ascii_list.
249         (mface__for_chars): Update rface->non_ascii_list.
250         (mface__free_realized): Free rface->non_ascii_list.
251         (mface__update_frame_face): New function.
252         (mface): Initialize face->frame_list.
253         (mface_copy): Likewise.  Just copy MFACE_HLINE and MFACE_BOX
254         properties.
255         (mface_merge): Likewise.
256         (mface_put_prop): If key is Mhline or Mbox, get value by
257         get_hline_create or get_box_create respectively.
258         (mface_put_prop): Update frame->tick and call
259         mface__update_frame_face if necessary.
260         (mface_update): Do nothing if func is noop_hook.
261
262         * draw.c (render_glyphs): If a font is not found, use
263         mwin__draw_empty_boxes.
264         (alloc_gstring): Initialize gstring->tick.
265         (get_gstring): Check gstring->tick.
266
267 2004-05-17  Kenichi Handa  <handa@m17n.org>
268
269         * face.c (find_realized_face): Return value changed.  If RFONT is
270         NULL, avoid unnecessary checking.
271         (free_face): Free face->realized_face_list.
272         (mface__realize): Adjusted for the change of find_realized_face.
273         If it returns a realized face that needs update, free it and
274         realize a new one.  Push a new realized face to
275         frame->realized_face_list instead of appending.
276         (mface__for_chars): Adjusted for the change of find_realized_face.
277         Short cut if the required font is in rface->ascii_rface.
278         (mface_put_prop): Free old value if necessary.  Set need_update
279         member of realized faces to 1.
280
281         * face.h (struct MFace): Delete member tick, add member
282         realized_face_list.
283         (struct MRealizedFace): Delete member tick, add member
284         need_update.
285
286 2004-05-13  Kenichi Handa  <handa@m17n.org>
287
288         * m17n-X.c (mwin__xft_open): Destroy unnecessary patterns.
289
290 2004-05-12  Kenichi Handa  <handa@m17n.org>
291
292         * internal-gui.h (mwin__xft_open): Arguemnt name changed.
293
294         * m17n-X.c (mwin__xft_open): Argument changed to fontname and
295         parse it XftNameParse.
296
297         * font-ft.c (MFTInfo) [HAVE_XFT2]: New member fontname.
298         (all_fonts_scaned): New variable.
299         (set_font_info): FAMILY may be Mnil.
300         (add_font_info): Argument changed.
301         (xft_list): Call add_font_info in it.
302         (ft_list): Likewise.
303         (ft_select): Make it work in the case family is Mnil.
304         (ft_open) [HAVE_XFT2]: Setup ft_info->fontname.
305         (mfont__ft_fini): Set all_fonts_scaned to 0.
306
307         * fontset.c (mfont__lookup_fontset): Don't repeatedly try a font
308         that is failed to open.
309
310 2004-05-10  Kenichi Handa  <handa@m17n.org>
311
312         * m17n-X.c (mwin__xft_render): Don't use anti-alias if the
313         device's depth is 1 (i.e. monochrome).
314
315         * Makefile.am (OPTIONAL_LD_FLAGS): Change the order of elements
316         to work around the problem of libtool.
317
318         * font-ft.c: Include <freetype/ftbdf.h>.
319         (Municode_bmp, Municode_full, Miso10646_1, Miso8859_1): New
320         variables.
321         (mfont__ft_init): Initialize them.
322         (ft_iso8859_1_font_list): New variable.
323         (set_font_info): Detect a font containing iso8859-1 glyphs and
324         register it in ft_iso8859_1_font_list.  If the font is not
325         scalable, assume it as BDF or PCF font and setup SIZE and RESY
326         properties of the font from its properties.
327         (add_font_list): If the font is not scalable, check if it is BDF
328         or PCF font.  If not, ignore it.
329         (ft_select): If FAMILY is Mnil, return NULL only if the requested
330         registry is not iso8859-1.
331         (ft_select) [not HAVE_XFT2]: If FAMILY is Mnil, select one from
332         ft_iso8859_1_font_list.
333         (ft_find_metric): If the font is not scalable, assume it as BDF
334         or PCF, and get a metric from its properties.
335         (mfont__ft_fini): Free ft_iso8859_1_font_list.
336
337 2004-05-07  Kenichi Handa  <handa@redhat.m17n.org>
338
339         * Makefile.am (libm17n_la_LIBADD): Include -ldl.
340         (libm17n_la_LDFLAGS): Delete it.
341         (noinst_PROGRAMS): Renamed from bin_PROGRAMS.
342         (install-binPROGRAMS, uninstall-binPROGRAMS): Delete them.
343
344 2004-05-06  Kenichi Handa  <handa@m17n.org>
345
346         * draw.c (compose_glyph_string): Fix previous change.
347
348 2004-04-30  Kenichi Handa  <handa@m17n.org>
349
350         * font-ft.c (ft_list): Delete unused variable `result'.
351         (ft_render): Fix for the case that bitmap.pitch < bitmap.width.
352
353 2004-04-27  Kenichi Handa  <handa@m17n.org>
354
355         * m17n-X.c: Include config.h
356         [HAVE_XFT2]: Include <X11/Xft/Xft.h>.
357         (GCInfo) [HAVE_XFT2]: New member xft_color_fore, xft_color_back.
358         (MWDevice) [HAVE_XFT2]: New member xft_draw.
359         (FRAME_CMAP, FRAME_VISUAL): New macros.
360         (free_device) [HAVE_XFT2]: Destroy device->xft_draw.
361         (xfont_driver): Make it static.
362         (mwin__open_device) [HAVE_XFT2]: Setup device->xft_draw.
363         (mwin__realize_face) [HAVE_XFT2]: Setup info->xft_color_fore and
364         info->xft_color_back.
365         (MXftFontInfo) [HAVE_XFT2]: New type.
366         (mwin__xft_close) [HAVE_XFT2]: New function.
367         (mwin__xft_open) [HAVE_XFT2]: New function.
368         (mwin__xft_get_metric) [HAVE_XFT2]: New function.
369         (mwin__xft_render) [HAVE_XFT2]: New function.
370
371         * internal-gui.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
372         (mwin__xft_open, mwin__xft_close) [HAVE_FREETYPE]: New externs.
373         (mwin__xft_get_metric, mwin__xft_render) [HAVE_FREETYPE]: New
374         externs.
375
376         * font.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
377
378         * font-ft.c: Don't include FT_FREETYPE_H here.
379         [HAVE_XFT2]: Include <fontconfig/fontconfig.h>.
380         (fontconfig_initialized, fc_config) [HAVE_XFT2]: New variables.
381         (MFTInfo): New member charmap_index.
382         (MFTInfo) [HAVE_XFT2]: New member xft_info.
383         (check_otf_filename): Renamed from check_filename.  Return value
384         changed.
385         (ft_set_property): This function deleted.
386         (set_font_info): New function.
387         (add_font_list): Argument changed.  Add multiple fonts.
388         (xft_list) [HAVE_XFT2]: New function.
389         (ft_list) [not HAVE_XFT2]: New function.
390         (ft_select): Add code for Xft.
391         (close_ft): Likewise.
392         (ft_open): Likewise.
393         (ft_find_metric): Likewise.
394         (ft_encode_char): Likewise.
395         (ft_render): Likewise.
396
397         * makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@.
398
399 2004-04-26  Kenichi Handa  <handa@m17n.org>
400
401         * textprop.c (mtext_attach_property): Declare the return type as
402         `int'.
403
404 2004-04-21  Kenichi Handa  <handa@m17n.org>
405
406         * Makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@
407
408 2004-04-09  Kenichi Handa  <handa@m17n.org>
409
410         * font-flt.c (struct): New members seq_beg, seq_end, seq_from,
411         seq_to.
412         (load_command): Setup above members.
413
414 2004-04-05  Kenichi Handa  <handa@m17n.org>
415
416         * m17n-X.c (xfont_encode_char): Fix checking of byte1 and byte2.
417
418 2004-03-30  Kenichi Handa  <handa@m17n.org>
419
420         * m17n-X.c (xfont_encode_char): Return MCHAR_INVALID_CODE if code
421         >= 0x10000.
422
423         * m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 2.
424         (M17NLIB_VERSION_NAME): Changed to 1.0.2.
425
426 2004-03-29  Kenichi Handa  <handa@m17n.org>
427
428         * Version 1.0 Patch Level 2 released.
429
430 2004-03-29  Kenichi Handa  <handa@m17n.org>
431
432         * charset.c (make_charset): Set charset->fully_loaded and
433         charset->simple correctly.  Don't try to get charset->min_char and
434         charset->max_char for a charset of method subset and superset.
435         Don't load a mapping file here.
436         (mcharset__init): Set unified_max.
437         (mcharset__load_from_database): Free a working plist.
438
439         * coding.c (mcoding__fini): Free all malloced data.
440
441         * input-gui.c (win_create_ic): Set control.as_image for preediting
442         to 0.
443
444         * internal.h (M17N_OBJECT_REGISTER): Check the member `used' (not
445         `count') to initialize the array.
446
447         * locale.c (mlocale_set): Fix the order of M17N_OBJECT_REF and
448         M17N_OBJECT_UNREF.
449
450         * m17n-X.c (xfont_render): If rface->rfont is null, draw a
451         rectangle.
452         (mwin__create_window): Fix bug of setting a background pixel of a
453         new window.
454         (mwin__adjust_window): Clear the window before drawing.
455
456         * m17n-core.c (mdebug__report_object): Free array->objectes if
457         necessary.
458         (m17n_init_core): Don't set report_header_printed to 0 here.
459         Fix debugging information.
460         (m17n_fini_core): Set report_header_printed to 0 here.
461
462         * m17n-core.h (mplist_deserialize): Extern it.
463
464         * m17n-gui.c (m17n_fini_win): Fix debugging information.
465
466         * m17n.c (m17n_fini): Fix debugging information.
467
468         * mtext.c (mtext__adjust_foramt): New function.
469
470         * mtext.h (mtext__adjust_foramt): Extern it.
471
472         * plist.c (mplist_deserialize): Renamed from mplist__deserialize.
473
474         * plist.h (mplist__deserialize): Don't extern it.
475
476         * symbol.c (msymbol__fini): Set freed_symbols to 0.  Set all
477         elements of symbol_table to NULL.  Report about created and freed
478         symbols if MDEBUG_FINI is set.
479
480 2004-03-22  Kenichi Handa  <handa@m17n.org>
481
482         * m17n-core.c (m17n_init_core): Set merror_code to MERROR_NONE.
483
484         * m17n.c (m17n_init): Fix the way of checking merror_code.
485
486         * m17n-gui.c (m17n_init_win): Fix the way of checking merror_code.
487
488 2004-03-22  Kenichi Handa  <handa@m17n.org>
489
490         * fontset.c (realize_font_group): Adjust the font size by
491         mfont__resize before selecting a font.
492
493         * font-ft.c (mfont__ft_init): Add oblique and boldoblique.
494
495 2004-03-19  Kenichi Handa  <handa@m17n.org>
496
497         * Version 1.0 Patch Level 1 released.
498
499 2004-03-19  Kenichi Handa  <handa@m17n.org>
500
501         * m17n-core.h (M17NLIB_PATCH_LEVEL): New macro.
502
503         * m17n-core.c (M17NLIB_PATCH_LEVEL): Describe it.
504
505 2004-03-19  Kenichi Handa  <handa@m17n.org>
506
507         Re-apply the changes forgotten in the released version.
508
509         * charset.c (mcharset__load_from_database): Call
510         mchar_define_charset.
511
512         * coding.c (encode_unsupporeted_char): Put Mcoding text property.
513         (mconv_encode_range): Put Mcoding text property.
514
515 2004-03-18  Kenichi Handa  <handa@m17n.org>
516
517         * draw.c (Mdepth): New variable.
518         (visual_order): Delete unused local var `pos'.
519         (compose_glyph_string): Fix for the case that gstring->glyphs is
520         realloced.  Stop generating glyphs at TO.  Fix handling of
521         control charaters.
522         (layout_glyphs): Get metrics of all glyphs in advance.  Set
523         lbearing and rbearing of base of composition glyph correctly.
524         Handle left-overhang glyphs correctly.
525         (alloc_gstring): New arg frame.  Set gstring->anti_alias.  Caller
526         changed.
527         (dump_combining_code): Change the defualt off_x character to ".".
528         (mdraw__init): Initialize Mdepth.
529
530         * face.c (work_gstring): New variable
531         (mface__init): Initialize work_gstring.
532         (mface__fini): Free work_gstring.glyphs.
533         (mface__realize): Don't handle videomode property here.  Adjusted
534         for the change of mfont__get_metric.
535         (mface__for_chars): Adjusted for the change of mfont__get_metric.
536
537         * face.h (enum face_gc): Moved to m17n-X.c.
538
539         * font.h (struct MFontDriver): Arguments of find_metric changed.
540         (mfont__select): Prototype adjusted.
541         (mfont__get_metric): Likewise.
542         (mfont__ft_drive_otf): Likewise.
543         (mfont__flt_run): Likewise.
544         
545         * font.c (mfont__select): New argument layouter.  If layouter is
546         different in the registered font, make a new copy of realized
547         font.
548         (mfont__get_metric): Argument changed.  Get metrics of multiple
549         glyphs.
550         (mfont_find): Call mfont__select with layouter as Mnil.
551
552         * font-flt.c (FontLayoutContext): New member rfont.
553         (run_otf): Adjusted for the change of mfont__ft_drive_otf.
554         (mfont__flt_run): Argument changed.  Initialize ctx.rfont.
555
556         * font-ft.c (ft_find_metric): Arguments changed.  Get metrics of
557         multiple glyphs.
558         (NUM_POINTS): New macro.
559         (MPointTable): New type.
560         (ft_render): Use mwin__draw_points instead of mwin__draw_bitmap.
561         (mfont__ft_drive_otf): New argument rfont.
562
563         * fontset.c (realize_font_group): Adjusted for the changed of
564         mfont__select.
565         (check_fontset_element): This function deleted.
566
567         * input-gui.c (adjust_window_and_draw): Locate a preedit window
568         off the parent window if the preedit text is zero length.
569
570         * internal-gui.h (struct MFrame): New members foreground,
571         background, videomode, font.
572         (struct MGlyphString): New member anti_alias.
573         (MDrawPoint): New type.
574         (mwin__draw_bitmap): Prototype deleted.
575         (mwin__draw_points): Prototype added.
576
577         * m17n-gui.h (MDrawControl): New member anti_alias.
578
579         * m17n-gui.c (free_frame): Free frame->font.
580         (mframe): Set the fontset of frame->face to the default fontset.
581
582         * m17n-X.c (RGB_GC): New type.
583         (enum gc_index): Renamed from enum face_gc.  Member names changed.
584         (GCInfo): New typel
585         (struct MWDevice): Members foreground and background deleted.  New
586         member scratch_gc, gc_list.
587         (DEFAULT_FONT, FALLBACK_FONT): New macros.
588         (free_device): Free GCs in device->gc_list.
589         (get_rgb_gc): New function.
590         (get_gc): Renamed and argument changed from get_color.
591         (get_gc_for_anti_alias): New function.
592         (xfont_find_metric): Arguments changed.  Get metrics of multiple
593         glyphs.
594         (set_region): Argument changed.  Caller changed.
595         (xfont_render): Allways set a font in gc.
596         (x_error_handler, x_io_error_handler): Define only if
597         X_SET_ERROR_HANDLER is defined.
598         (mwin__open_device): Create device->scratch_gc.  Set members
599         foreground, background, and videomode of frame.  Call
600         XSetErrorHandler and XSetIOErrorHandler only if
601         X_SET_ERROR_HANDLER is defined.
602         (struct gc_list): Deleted.
603         (REGISTER_GC, UNREGISTER_GC): These macros deleted.
604         (mwin__realize_face): Adjusted for the change of the format of
605         rface->info and the charge of set_region.
606         (mwin__free_realized_face, mwin__fill_space, mwin__draw_hline)
607         (mwin__draw_box): Likewise.
608         (mwin__draw_bitmap): This function deleted.
609         (mwin__draw_points): New function.
610         (mwin__verify_region): Adjusted for the change of the format of
611         rface->info and the charge of set_region.
612         (mwin__create_window): Inherit backgound pixel from parent.
613         (mwin__dump_gc): Adjusted for the change of the format of
614         rface->info.
615
616 2004-03-16  Kenichi Handa  <handa@m17n.org>
617
618         * m17n-X.c (mwin__parse_event): Fix handling of modifier keys.
619
620         * input.c (M_key_alias): New variable.
621         (handle_key): Try M_key_alias property of a key too.
622         (minput__init): Initialize M_key_alias.  Give that property to
623         symbols in one_char_symbol.  Fix bug of initializing
624         one_char_symbol.
625
626         * draw.c (compose_glyph_string): Don't handle
627         ignore_formatting_char here.  Include formatting characters in the
628         range processed by a FTL.
629         (layout_glyph_string): Handle ignore_formatting_char here.
630
631 2004-03-12  Kenichi Handa  <handa@m17n.org>
632
633         * input-gui.c (win_create_ic): Enable bidi in status control.
634
635         * draw.c (visual_order): Avoid re-ordering of combining glyphs only.
636
637 2004-03-09  Kenichi Handa  <handa@m17n.org>
638
639         * input.c (load_input_method): If title is not specified, use the
640         input method name as title.
641
642         * m17n-X.c (get_color): Make it static.
643         (xim_create_ic, xim_destroy_ic, x_error_handler)
644         (x_io_error_handler): Likewise.
645
646 2004-03-01  Kenichi Handa  <handa@m17n.org>
647
648         * Version 1.0 released.
649
650 \f
651 Copyright (C) 2003, 2004
652   National Institute of Advanced Industrial Science and Technology (AIST)
653   Registration Number H15PRO112
654
655 This file is part of the m17n library.
656
657 The m17n library is free software; you can redistribute it and/or
658 modify it under the terms of the GNU Lesser General Public License
659 as published by the Free Software Foundation; either version 2.1 of
660 the License, or (at your option) any later version.
661
662 The m17n library is distributed in the hope that it will be useful,
663 but WITHOUT ANY WARRANTY; without even the implied warranty of
664 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
665 Lesser General Public License for more details.
666
667 You should have received a copy of the GNU Lesser General Public
668 License along with the m17n library; if not, write to the Free
669 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
670 02111-1307, USA.