* xterm.h (x_output): New member `xic_base_fontname'.

(FRAME_XIC_BASE_FONTNAME): New macro.
(xic_free_xfontset): Declare.

* xfns.c (xic_create_xfontset): Share fontsets between frames
based on base_fontname.
(xic_free_xfontset): New function.
(free_frame_xic): Use it.
(xic_set_xfontset): Ditto.

* xterm.c (xim_destroy_callback): Ditto.
This commit is contained in:
Jan Djärv 2004-10-21 18:38:58 +00:00
parent 6e237e7298
commit c27ed90af5
4 changed files with 83 additions and 17 deletions

View file

@ -600,6 +600,7 @@ struct x_output
XIC xic;
XIMStyle xic_style;
XFontSet xic_xfs;
char *xic_base_fontname;
#endif
/* Relief GCs, colors etc. */
@ -734,6 +735,7 @@ enum
#define FRAME_X_XIM_STYLES(f) (FRAME_X_DISPLAY_INFO (f)->xim_styles)
#define FRAME_XIC_STYLE(f) ((f)->output_data.x->xic_style)
#define FRAME_XIC_FONTSET(f) ((f)->output_data.x->xic_xfs)
#define FRAME_XIC_BASE_FONTNAME(f) ((f)->output_data.x->xic_base_fontname)
/* Value is the smallest width of any character in any font on frame F. */
@ -1043,6 +1045,7 @@ extern void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object))
extern unsigned char * x_encode_text P_ ((Lisp_Object, Lisp_Object, int,
int *, int *));
extern void x_implicitly_set_name P_ ((struct frame *, Lisp_Object, Lisp_Object));
extern void xic_free_xfontset P_ ((struct frame *));
extern void create_frame_xic P_ ((struct frame *));
extern void destroy_frame_xic P_ ((struct frame *));
extern void xic_set_preeditarea P_ ((struct window *, int, int));