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