Fri Dec 10 23:33:16 PST 1999 Michael Jennings <mej@eterm.org>
I finally got around to implementing double-buffering, although it seems to still have some issues with font changes. But if you don't change fonts, it works great. :-) I also fixed the multibyte font stuff with help from Sung-Hyun Nam <namsh@lgic.co.kr>. There seem to be some new issues here, though, with the background pixmap. But I'm to tired to look deeper tonight. SVN revision: 1588
This commit is contained in:
parent
65719dbfc5
commit
55ddc328cd
11
ChangeLog
11
ChangeLog
|
@ -2902,3 +2902,14 @@ Wed Dec 8 19:05:06 PST 1999 Michael Jennings <mej@eterm.org>
|
||||||
Updated the man page once again.
|
Updated the man page once again.
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
Fri Dec 10 23:33:16 PST 1999 Michael Jennings <mej@eterm.org>
|
||||||
|
|
||||||
|
I finally got around to implementing double-buffering, although it
|
||||||
|
seems to still have some issues with font changes. But if you don't
|
||||||
|
change fonts, it works great. :-)
|
||||||
|
|
||||||
|
I also fixed the multibyte font stuff with help from Sung-Hyun Nam
|
||||||
|
<namsh@lgic.co.kr>. There seem to be some new issues here, though,
|
||||||
|
with the background pixmap. But I'm to tired to look deeper tonight.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
16
configure.in
16
configure.in
|
@ -336,7 +336,7 @@ AC_ARG_ENABLE(multi-charset,
|
||||||
AC_DEFINE_UNQUOTED(FONT2, "9x18")
|
AC_DEFINE_UNQUOTED(FONT2, "9x18")
|
||||||
AC_DEFINE_UNQUOTED(FONT3, "12x24")
|
AC_DEFINE_UNQUOTED(FONT3, "12x24")
|
||||||
AC_DEFINE_UNQUOTED(FONT4, "13x26")
|
AC_DEFINE_UNQUOTED(FONT4, "13x26")
|
||||||
elif test "$enableval" = "utf-8"; then
|
elif test "$enableval" = "utf-8" -o "$enableval" = "utf8"; then
|
||||||
AC_MSG_RESULT(utf-8)
|
AC_MSG_RESULT(utf-8)
|
||||||
AC_DEFINE(MULTI_CHARSET)
|
AC_DEFINE(MULTI_CHARSET)
|
||||||
AC_DEFINE_UNQUOTED(DEF_FONT_IDX, 2)
|
AC_DEFINE_UNQUOTED(DEF_FONT_IDX, 2)
|
||||||
|
@ -350,7 +350,7 @@ AC_ARG_ENABLE(multi-charset,
|
||||||
AC_DEFINE_UNQUOTED(FONT2, "fixed")
|
AC_DEFINE_UNQUOTED(FONT2, "fixed")
|
||||||
AC_DEFINE_UNQUOTED(FONT3, "8x13")
|
AC_DEFINE_UNQUOTED(FONT3, "8x13")
|
||||||
AC_DEFINE_UNQUOTED(FONT4, "9x15")
|
AC_DEFINE_UNQUOTED(FONT4, "9x15")
|
||||||
else
|
elif test "$enableval" = "no"; then
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
AC_DEFINE_UNQUOTED(DEF_FONT_IDX, 2)
|
AC_DEFINE_UNQUOTED(DEF_FONT_IDX, 2)
|
||||||
AC_DEFINE_UNQUOTED(FONT0, "5x7")
|
AC_DEFINE_UNQUOTED(FONT0, "5x7")
|
||||||
|
@ -358,6 +358,8 @@ AC_ARG_ENABLE(multi-charset,
|
||||||
AC_DEFINE_UNQUOTED(FONT2, "fixed")
|
AC_DEFINE_UNQUOTED(FONT2, "fixed")
|
||||||
AC_DEFINE_UNQUOTED(FONT3, "8x13")
|
AC_DEFINE_UNQUOTED(FONT3, "8x13")
|
||||||
AC_DEFINE_UNQUOTED(FONT4, "9x15")
|
AC_DEFINE_UNQUOTED(FONT4, "9x15")
|
||||||
|
else
|
||||||
|
AC_ERROR(invalid value for --enable-multi-charset)
|
||||||
fi, AC_MSG_RESULT(no)
|
fi, AC_MSG_RESULT(no)
|
||||||
AC_DEFINE_UNQUOTED(DEF_FONT_IDX, 2)
|
AC_DEFINE_UNQUOTED(DEF_FONT_IDX, 2)
|
||||||
AC_DEFINE_UNQUOTED(FONT0, "5x7")
|
AC_DEFINE_UNQUOTED(FONT0, "5x7")
|
||||||
|
@ -388,6 +390,16 @@ AC_ARG_ENABLE(greek,
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
fi, AC_MSG_RESULT(no)
|
fi, AC_MSG_RESULT(no)
|
||||||
)
|
)
|
||||||
|
AC_ARG_WITH(theme-update,
|
||||||
|
[ --with-theme-update existing themes will be forceably removed and new ones installed],
|
||||||
|
if test "$withval" = "yes"; then
|
||||||
|
REMOVE_THEMES=yes
|
||||||
|
else
|
||||||
|
REMOVE_THEMES=no
|
||||||
|
fi, REMOVE_THEMES=no
|
||||||
|
)
|
||||||
|
AC_SUBST(REMOVE_THEMES)
|
||||||
|
|
||||||
dnl# AC_MSG_CHECKING(which threads library to use)
|
dnl# AC_MSG_CHECKING(which threads library to use)
|
||||||
dnl# AC_ARG_WITH(threads,
|
dnl# AC_ARG_WITH(threads,
|
||||||
dnl# [ --with-threads[=STYLE] compile with threads support, STYLE is either "posix" or blank
|
dnl# [ --with-threads[=STYLE] compile with threads support, STYLE is either "posix" or blank
|
||||||
|
|
|
@ -509,10 +509,12 @@ handle_expose(event_t * ev)
|
||||||
|
|
||||||
REQUIRE_RVAL(XEVENT_IS_MYWIN(ev, &primary_data), 0);
|
REQUIRE_RVAL(XEVENT_IS_MYWIN(ev, &primary_data), 0);
|
||||||
if (ev->xany.window == TermWin.vt) {
|
if (ev->xany.window == TermWin.vt) {
|
||||||
|
if (buffer_pixmap == None) {
|
||||||
if (refresh_type == NO_REFRESH) {
|
if (refresh_type == NO_REFRESH) {
|
||||||
refresh_type = FAST_REFRESH;
|
refresh_type = FAST_REFRESH;
|
||||||
}
|
}
|
||||||
scr_expose(ev->xexpose.x, ev->xexpose.y, ev->xexpose.width, ev->xexpose.height);
|
scr_expose(ev->xexpose.x, ev->xexpose.y, ev->xexpose.width, ev->xexpose.height);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
XEvent unused_xevent;
|
XEvent unused_xevent;
|
||||||
|
|
29
src/font.c
29
src/font.c
|
@ -72,16 +72,29 @@ eterm_font_add(char ***plist, const char *fontname, unsigned char idx) {
|
||||||
if (idx >= font_cnt) {
|
if (idx >= font_cnt) {
|
||||||
unsigned char new_size = sizeof(char *) * (idx + 1);
|
unsigned char new_size = sizeof(char *) * (idx + 1);
|
||||||
|
|
||||||
if (flist) {
|
if (etfonts) {
|
||||||
*plist = (char **) REALLOC(*plist, new_size);
|
etfonts = (char **) REALLOC(etfonts, new_size);
|
||||||
D_FONT((" -> Reallocating flist to a size of %u bytes gives %8p\n", new_size, *plist));
|
#ifdef MULTI_CHARSET
|
||||||
|
etmfonts = (char **) REALLOC(etmfonts, new_size);
|
||||||
|
#endif
|
||||||
|
D_FONT((" -> Reallocating fonts lists to a size of %u bytes gives %8p/%8p\n", new_size, etfonts, etmfonts));
|
||||||
} else {
|
} else {
|
||||||
*plist = (char **) MALLOC(new_size);
|
etfonts = (char **) MALLOC(new_size);
|
||||||
D_FONT((" -> Allocating flist with a size of %u bytes gives %8p\n", new_size, *plist));
|
#ifdef MULTI_CHARSET
|
||||||
|
etmfonts = (char **) MALLOC(new_size);
|
||||||
|
#endif
|
||||||
|
D_FONT((" -> Allocating fonts lists to a size of %u bytes gives %8p/%8p\n", new_size, etfonts, etmfonts));
|
||||||
}
|
}
|
||||||
flist = *plist;
|
MEMSET(etfonts + font_cnt, 0, sizeof(char *) * (idx - font_cnt + 1));
|
||||||
MEMSET(flist + font_cnt, 0, sizeof(char *) * (idx - font_cnt));
|
#ifdef MULTI_CHARSET
|
||||||
|
MEMSET(etmfonts + font_cnt, 0, sizeof(char *) * (idx - font_cnt + 1));
|
||||||
|
#endif
|
||||||
font_cnt = idx + 1;
|
font_cnt = idx + 1;
|
||||||
|
#ifdef MULTI_CHARSET
|
||||||
|
flist = ((plist == &etfonts) ? (etfonts) : (etmfonts));
|
||||||
|
#else
|
||||||
|
flist = etfonts;
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
if (flist[idx]) {
|
if (flist[idx]) {
|
||||||
if ((flist[idx] == fontname) || (!strcasecmp(flist[idx], fontname))) {
|
if ((flist[idx] == fontname) || (!strcasecmp(flist[idx], fontname))) {
|
||||||
|
@ -205,7 +218,7 @@ font_cache_find_info(const char *name, unsigned char type) {
|
||||||
|
|
||||||
cachefont_t *current;
|
cachefont_t *current;
|
||||||
|
|
||||||
ASSERT_RVAL(name != NULL, NULL);
|
REQUIRE_RVAL(name != NULL, NULL);
|
||||||
|
|
||||||
D_FONT(("font_cache_find_info(%s, %d) called.\n", NONULL(name), type));
|
D_FONT(("font_cache_find_info(%s, %d) called.\n", NONULL(name), type));
|
||||||
|
|
||||||
|
|
|
@ -391,6 +391,7 @@ static const struct {
|
||||||
OPT_BOOL('8', "meta-8", "Meta key toggles 8-bit", &Options, Opt_meta8),
|
OPT_BOOL('8', "meta-8", "Meta key toggles 8-bit", &Options, Opt_meta8),
|
||||||
#endif
|
#endif
|
||||||
OPT_BLONG("backing-store", "use backing store", &Options, Opt_backing_store),
|
OPT_BLONG("backing-store", "use backing store", &Options, Opt_backing_store),
|
||||||
|
OPT_BLONG("double-buffer", "use double-buffering to reduce exposes (uses more memory)", &Options, Opt_double_buffer),
|
||||||
OPT_BLONG("no-cursor", "disable the text cursor", &Options, Opt_noCursor),
|
OPT_BLONG("no-cursor", "disable the text cursor", &Options, Opt_noCursor),
|
||||||
OPT_BLONG("pause", "pause for a keypress after the child process exits", &Options, Opt_pause),
|
OPT_BLONG("pause", "pause for a keypress after the child process exits", &Options, Opt_pause),
|
||||||
OPT_BLONG("xterm-select", "duplicate xterm's broken selection behavior", &Options, Opt_xterm_select),
|
OPT_BLONG("xterm-select", "duplicate xterm's broken selection behavior", &Options, Opt_xterm_select),
|
||||||
|
@ -1958,6 +1959,13 @@ parse_toggles(char *buff)
|
||||||
Options &= ~(Opt_backing_store);
|
Options &= ~(Opt_backing_store);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if (!BEG_STRCASECMP(buff, "double_buffer ")) {
|
||||||
|
if (bool_val) {
|
||||||
|
Options |= Opt_double_buffer;
|
||||||
|
} else {
|
||||||
|
Options &= ~(Opt_double_buffer);
|
||||||
|
}
|
||||||
|
|
||||||
} else if (!BEG_STRCASECMP(buff, "no_cursor ")) {
|
} else if (!BEG_STRCASECMP(buff, "no_cursor ")) {
|
||||||
if (bool_val) {
|
if (bool_val) {
|
||||||
Options |= Opt_noCursor;
|
Options |= Opt_noCursor;
|
||||||
|
@ -3863,6 +3871,7 @@ save_config(char *path)
|
||||||
fprintf(fp, " scrollbar_popup %d\n", (Options & Opt_scrollbar_popup ? 1 : 0));
|
fprintf(fp, " scrollbar_popup %d\n", (Options & Opt_scrollbar_popup ? 1 : 0));
|
||||||
fprintf(fp, " borderless %d\n", (Options & Opt_borderless ? 1 : 0));
|
fprintf(fp, " borderless %d\n", (Options & Opt_borderless ? 1 : 0));
|
||||||
fprintf(fp, " backing_store %d\n", (Options & Opt_backing_store ? 1 : 0));
|
fprintf(fp, " backing_store %d\n", (Options & Opt_backing_store ? 1 : 0));
|
||||||
|
fprintf(fp, " double_buffer %d\n", (Options & Opt_double_buffer ? 1 : 0));
|
||||||
fprintf(fp, " no_cursor %d\n", (Options & Opt_noCursor ? 1 : 0));
|
fprintf(fp, " no_cursor %d\n", (Options & Opt_noCursor ? 1 : 0));
|
||||||
fprintf(fp, " pause %d\n", (Options & Opt_pause ? 1 : 0));
|
fprintf(fp, " pause %d\n", (Options & Opt_pause ? 1 : 0));
|
||||||
fprintf(fp, " xterm_select %d\n", (Options & Opt_xterm_select ? 1 : 0));
|
fprintf(fp, " xterm_select %d\n", (Options & Opt_xterm_select ? 1 : 0));
|
||||||
|
|
|
@ -72,6 +72,7 @@
|
||||||
# define Opt_select_trailing_spaces (1LU << 22)
|
# define Opt_select_trailing_spaces (1LU << 22)
|
||||||
# define Opt_install (1LU << 23)
|
# define Opt_install (1LU << 23)
|
||||||
# define Opt_scrollbar_floating (1LU << 24)
|
# define Opt_scrollbar_floating (1LU << 24)
|
||||||
|
# define Opt_double_buffer (1LU << 25)
|
||||||
|
|
||||||
# define IMOPT_TRANS (1U << 0)
|
# define IMOPT_TRANS (1U << 0)
|
||||||
# define IMOPT_VIEWPORT (1U << 1)
|
# define IMOPT_VIEWPORT (1U << 1)
|
||||||
|
|
73
src/pixmap.c
73
src/pixmap.c
|
@ -47,8 +47,8 @@ static const char cvs_ident[] = "$Id$";
|
||||||
#include "term.h"
|
#include "term.h"
|
||||||
|
|
||||||
#ifdef PIXMAP_SUPPORT
|
#ifdef PIXMAP_SUPPORT
|
||||||
Pixmap desktop_pixmap = None;
|
Pixmap desktop_pixmap = None, viewport_pixmap = None;
|
||||||
Pixmap viewport_pixmap = None;
|
Pixmap buffer_pixmap = None;
|
||||||
Window desktop_window = None;
|
Window desktop_window = None;
|
||||||
unsigned char desktop_pixmap_is_mine = 0;
|
unsigned char desktop_pixmap_is_mine = 0;
|
||||||
ImlibData *imlib_id = NULL;
|
ImlibData *imlib_id = NULL;
|
||||||
|
@ -69,6 +69,7 @@ image_t images[image_max] =
|
||||||
|
|
||||||
#ifdef PIXMAP_SUPPORT
|
#ifdef PIXMAP_SUPPORT
|
||||||
static const char *get_iclass_name(unsigned char);
|
static const char *get_iclass_name(unsigned char);
|
||||||
|
static void copy_buffer_pixmap(unsigned char mode, unsigned long fill, unsigned short width, unsigned short height);
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
get_image_type(unsigned short type)
|
get_image_type(unsigned short type)
|
||||||
|
@ -475,6 +476,34 @@ redraw_image(unsigned char which) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
copy_buffer_pixmap(unsigned char mode, unsigned long fill, unsigned short width, unsigned short height)
|
||||||
|
{
|
||||||
|
GC gc;
|
||||||
|
XGCValues gcvalue;
|
||||||
|
|
||||||
|
ASSERT(buffer_pixmap == None);
|
||||||
|
buffer_pixmap = XCreatePixmap(Xdisplay, TermWin.vt, width, height, Xdepth);
|
||||||
|
gcvalue.foreground = (Pixel) fill;
|
||||||
|
gc = XCreateGC(Xdisplay, TermWin.vt, GCForeground, &gcvalue);
|
||||||
|
XSetGraphicsExposures(Xdisplay, gc, False);
|
||||||
|
|
||||||
|
if (mode == MODE_SOLID) {
|
||||||
|
simage_t *simg;
|
||||||
|
|
||||||
|
simg = images[image_bg].current;
|
||||||
|
if (simg->pmap->pixmap) {
|
||||||
|
XFreePixmap(Xdisplay, simg->pmap->pixmap);
|
||||||
|
}
|
||||||
|
simg->pmap->pixmap = XCreatePixmap(Xdisplay, TermWin.vt, width, height, Xdepth);
|
||||||
|
XFillRectangle(Xdisplay, simg->pmap->pixmap, gc, 0, 0, width, height);
|
||||||
|
XCopyArea(Xdisplay, simg->pmap->pixmap, buffer_pixmap, gc, 0, 0, width, height, 0, 0);
|
||||||
|
} else {
|
||||||
|
XCopyArea(Xdisplay, (Pixmap) fill, buffer_pixmap, gc, 0, 0, width, height, 0, 0);
|
||||||
|
}
|
||||||
|
XFreeGC(Xdisplay, gc);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
render_simage(simage_t * simg, Window win, unsigned short width, unsigned short height, unsigned char which, renderop_t renderop)
|
render_simage(simage_t * simg, Window win, unsigned short width, unsigned short height, unsigned char which, renderop_t renderop)
|
||||||
{
|
{
|
||||||
|
@ -517,6 +546,11 @@ render_simage(simage_t * simg, Window win, unsigned short width, unsigned short
|
||||||
gc = XCreateGC(Xdisplay, win, GCForeground | GCBackground, &gcvalue);
|
gc = XCreateGC(Xdisplay, win, GCForeground | GCBackground, &gcvalue);
|
||||||
pixmap = simg->pmap->pixmap; /* Save this for later */
|
pixmap = simg->pmap->pixmap; /* Save this for later */
|
||||||
|
|
||||||
|
if ((which == image_bg) && (buffer_pixmap != None)) {
|
||||||
|
XFreePixmap(Xdisplay, buffer_pixmap);
|
||||||
|
buffer_pixmap = None;
|
||||||
|
}
|
||||||
|
|
||||||
if ((images[which].mode & MODE_AUTO) && (images[which].mode & ALLOW_AUTO)) {
|
if ((images[which].mode & MODE_AUTO) && (images[which].mode & ALLOW_AUTO)) {
|
||||||
char buff[255];
|
char buff[255];
|
||||||
const char *iclass, *state;
|
const char *iclass, *state;
|
||||||
|
@ -569,7 +603,12 @@ render_simage(simage_t * simg, Window win, unsigned short width, unsigned short
|
||||||
"window manager or use Esetroot to set a new one.");
|
"window manager or use Esetroot to set a new one.");
|
||||||
desktop_pixmap = None;
|
desktop_pixmap = None;
|
||||||
D_PIXMAP(("Setting background of window 0x%08x to the background color\n", win));
|
D_PIXMAP(("Setting background of window 0x%08x to the background color\n", win));
|
||||||
|
if ((which == image_bg) && (Options & Opt_double_buffer)) {
|
||||||
|
copy_buffer_pixmap(MODE_SOLID, (unsigned long) PixColors[bgColor], width, height);
|
||||||
|
XSetWindowBackgroundPixmap(Xdisplay, win, buffer_pixmap);
|
||||||
|
} else {
|
||||||
XSetWindowBackground(Xdisplay, win, PixColors[bgColor]);
|
XSetWindowBackground(Xdisplay, win, PixColors[bgColor]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (pw < (unsigned int) scr->width || ph < (unsigned int) scr->height) {
|
if (pw < (unsigned int) scr->width || ph < (unsigned int) scr->height) {
|
||||||
XFreeGC(Xdisplay, gc);
|
XFreeGC(Xdisplay, gc);
|
||||||
|
@ -588,13 +627,23 @@ render_simage(simage_t * simg, Window win, unsigned short width, unsigned short
|
||||||
Imlib_bevel_pixmap(imlib_id, simg->pmap->pixmap, width, height, simg->iml->bevel->edges, simg->iml->bevel->up);
|
Imlib_bevel_pixmap(imlib_id, simg->pmap->pixmap, width, height, simg->iml->bevel->edges, simg->iml->bevel->up);
|
||||||
}
|
}
|
||||||
D_PIXMAP(("Setting background of window 0x%08x to 0x%08x\n", win, simg->pmap->pixmap));
|
D_PIXMAP(("Setting background of window 0x%08x to 0x%08x\n", win, simg->pmap->pixmap));
|
||||||
|
if ((which == image_bg) && (Options & Opt_double_buffer)) {
|
||||||
|
copy_buffer_pixmap(MODE_TRANS, (unsigned long) simg->pmap->pixmap, width, height);
|
||||||
|
XSetWindowBackgroundPixmap(Xdisplay, win, buffer_pixmap);
|
||||||
|
} else {
|
||||||
XSetWindowBackgroundPixmap(Xdisplay, win, simg->pmap->pixmap);
|
XSetWindowBackgroundPixmap(Xdisplay, win, simg->pmap->pixmap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
D_PIXMAP(("Setting background of window 0x%08x to the background color\n", win));
|
D_PIXMAP(("Setting background of window 0x%08x to the background color\n", win));
|
||||||
|
if ((which == image_bg) && (Options & Opt_double_buffer)) {
|
||||||
|
copy_buffer_pixmap(MODE_SOLID, (unsigned long) PixColors[bgColor], width, height);
|
||||||
|
XSetWindowBackgroundPixmap(Xdisplay, win, buffer_pixmap);
|
||||||
|
} else {
|
||||||
XSetWindowBackground(Xdisplay, win, PixColors[bgColor]);
|
XSetWindowBackground(Xdisplay, win, PixColors[bgColor]);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else if (image_mode_is(which, MODE_VIEWPORT) && image_mode_is(which, ALLOW_VIEWPORT)) {
|
} else if (image_mode_is(which, MODE_VIEWPORT) && image_mode_is(which, ALLOW_VIEWPORT)) {
|
||||||
D_PIXMAP(("Viewport mode enabled. viewport_pixmap == 0x%08x and simg->pmap->pixmap == 0x%08x\n", viewport_pixmap, simg->pmap->pixmap));
|
D_PIXMAP(("Viewport mode enabled. viewport_pixmap == 0x%08x and simg->pmap->pixmap == 0x%08x\n", viewport_pixmap, simg->pmap->pixmap));
|
||||||
if (viewport_pixmap == None) {
|
if (viewport_pixmap == None) {
|
||||||
|
@ -655,7 +704,12 @@ render_simage(simage_t * simg, Window win, unsigned short width, unsigned short
|
||||||
XFillRectangle(Xdisplay, simg->pmap->pixmap, gc, 0, 0, width, height);
|
XFillRectangle(Xdisplay, simg->pmap->pixmap, gc, 0, 0, width, height);
|
||||||
}
|
}
|
||||||
D_PIXMAP(("Setting background of window 0x%08x to 0x%08x\n", win, simg->pmap->pixmap));
|
D_PIXMAP(("Setting background of window 0x%08x to 0x%08x\n", win, simg->pmap->pixmap));
|
||||||
|
if ((which == image_bg) && (Options & Opt_double_buffer)) {
|
||||||
|
copy_buffer_pixmap(MODE_VIEWPORT, (unsigned long) simg->pmap->pixmap, width, height);
|
||||||
|
XSetWindowBackgroundPixmap(Xdisplay, win, buffer_pixmap);
|
||||||
|
} else {
|
||||||
XSetWindowBackgroundPixmap(Xdisplay, win, simg->pmap->pixmap);
|
XSetWindowBackgroundPixmap(Xdisplay, win, simg->pmap->pixmap);
|
||||||
|
}
|
||||||
} else
|
} else
|
||||||
# endif
|
# endif
|
||||||
if (image_mode_is(which, MODE_IMAGE) && image_mode_is(which, ALLOW_IMAGE)) {
|
if (image_mode_is(which, MODE_IMAGE) && image_mode_is(which, ALLOW_IMAGE)) {
|
||||||
|
@ -743,8 +797,13 @@ render_simage(simage_t * simg, Window win, unsigned short width, unsigned short
|
||||||
if (simg->pmap->mask != None) {
|
if (simg->pmap->mask != None) {
|
||||||
shaped_window_apply_mask(win, simg->pmap->mask);
|
shaped_window_apply_mask(win, simg->pmap->mask);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if ((which == image_bg) && (Options & Opt_double_buffer)) {
|
||||||
|
copy_buffer_pixmap(MODE_SOLID, (unsigned long) PixColors[bgColor], width, height);
|
||||||
|
XSetWindowBackgroundPixmap(Xdisplay, win, buffer_pixmap);
|
||||||
} else {
|
} else {
|
||||||
XSetWindowBackground(Xdisplay, win, PixColors[bgColor]);
|
XSetWindowBackground(Xdisplay, win, PixColors[bgColor]);
|
||||||
|
}
|
||||||
reset_simage(simg, RESET_ALL);
|
reset_simage(simg, RESET_ALL);
|
||||||
}
|
}
|
||||||
if (simg->pmap->pixmap != None) {
|
if (simg->pmap->pixmap != None) {
|
||||||
|
@ -774,8 +833,13 @@ render_simage(simage_t * simg, Window win, unsigned short width, unsigned short
|
||||||
Imlib_bevel_pixmap(imlib_id, simg->pmap->pixmap, width, height, simg->iml->bevel->edges, simg->iml->bevel->up);
|
Imlib_bevel_pixmap(imlib_id, simg->pmap->pixmap, width, height, simg->iml->bevel->edges, simg->iml->bevel->up);
|
||||||
}
|
}
|
||||||
D_PIXMAP(("Setting background of window 0x%08x to 0x%08x\n", win, simg->pmap->pixmap));
|
D_PIXMAP(("Setting background of window 0x%08x to 0x%08x\n", win, simg->pmap->pixmap));
|
||||||
|
if ((which == image_bg) && (Options & Opt_double_buffer)) {
|
||||||
|
copy_buffer_pixmap(MODE_VIEWPORT, (unsigned long) simg->pmap->pixmap, width, height);
|
||||||
|
XSetWindowBackgroundPixmap(Xdisplay, win, buffer_pixmap);
|
||||||
|
} else {
|
||||||
XSetWindowBackgroundPixmap(Xdisplay, win, simg->pmap->pixmap);
|
XSetWindowBackgroundPixmap(Xdisplay, win, simg->pmap->pixmap);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
unsigned short cidx;
|
unsigned short cidx;
|
||||||
|
|
||||||
|
@ -797,7 +861,12 @@ render_simage(simage_t * simg, Window win, unsigned short width, unsigned short
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((which == image_bg) && (Options & Opt_double_buffer)) {
|
||||||
|
copy_buffer_pixmap(MODE_SOLID, (unsigned long) PixColors[bgColor], width, height);
|
||||||
|
XSetWindowBackgroundPixmap(Xdisplay, win, buffer_pixmap);
|
||||||
|
} else {
|
||||||
XSetWindowBackground(Xdisplay, win, PixColors[cidx]);
|
XSetWindowBackground(Xdisplay, win, PixColors[cidx]);
|
||||||
|
}
|
||||||
image_set_mode(which, MODE_SOLID);
|
image_set_mode(which, MODE_SOLID);
|
||||||
}
|
}
|
||||||
XClearWindow(Xdisplay, win);
|
XClearWindow(Xdisplay, win);
|
||||||
|
|
13
src/pixmap.h
13
src/pixmap.h
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
/************ Macros and Definitions ************/
|
/************ Macros and Definitions ************/
|
||||||
#ifdef PIXMAP_SUPPORT
|
#ifdef PIXMAP_SUPPORT
|
||||||
# define background_is_image() (images[image_bg].current && images[image_bg].current->iml && images[image_bg].current->iml->im)
|
# define background_is_image() ((buffer_pixmap) || (images[image_bg].current && images[image_bg].current->iml && images[image_bg].current->iml->im))
|
||||||
# define background_is_trans() (images[image_bg].mode & MODE_TRANS)
|
# define background_is_trans() (images[image_bg].mode & MODE_TRANS)
|
||||||
# define background_is_viewport() (images[image_bg].mode & MODE_VIEWPORT)
|
# define background_is_viewport() (images[image_bg].mode & MODE_VIEWPORT)
|
||||||
# define background_is_auto() (images[image_bg].mode & MODE_AUTO)
|
# define background_is_auto() (images[image_bg].mode & MODE_AUTO)
|
||||||
|
@ -44,10 +44,11 @@
|
||||||
# define CONVERT_TINT_GREEN(t) (((t) & 0x00ff00) >> 8)
|
# define CONVERT_TINT_GREEN(t) (((t) & 0x00ff00) >> 8)
|
||||||
# define CONVERT_TINT_BLUE(t) ((t) & 0x0000ff)
|
# define CONVERT_TINT_BLUE(t) ((t) & 0x0000ff)
|
||||||
#else
|
#else
|
||||||
# define background_is_image() ((int)0)
|
# define background_is_image() NOP
|
||||||
# define background_is_trans() ((int)0)
|
# define background_is_trans() NOP
|
||||||
# define background_is_pixmap() ((int)0)
|
# define background_is_viewport() NOP
|
||||||
# define delete_simage(simg) ((void)0)
|
# define background_is_auto() NOP
|
||||||
|
# define delete_simage(simg) NOP
|
||||||
#endif
|
#endif
|
||||||
#define PIXMAP_EXT NULL
|
#define PIXMAP_EXT NULL
|
||||||
/* '[', 2*4 + 2*3 digits + 3 delimiters, ']'. -vendu */
|
/* '[', 2*4 + 2*3 digits + 3 delimiters, ']'. -vendu */
|
||||||
|
@ -153,7 +154,7 @@ typedef short renderop_t;
|
||||||
/************ Variables ************/
|
/************ Variables ************/
|
||||||
extern image_t images[image_max];
|
extern image_t images[image_max];
|
||||||
extern ImlibData *imlib_id;
|
extern ImlibData *imlib_id;
|
||||||
extern Pixmap desktop_pixmap, viewport_pixmap;
|
extern Pixmap desktop_pixmap, viewport_pixmap, buffer_pixmap;
|
||||||
extern Window desktop_window;
|
extern Window desktop_window;
|
||||||
|
|
||||||
/************ Function Prototypes ************/
|
/************ Function Prototypes ************/
|
||||||
|
|
85
src/screen.c
85
src/screen.c
|
@ -1090,12 +1090,21 @@ scr_erase_screen(int mode)
|
||||||
rend_t ren;
|
rend_t ren;
|
||||||
long gcmask;
|
long gcmask;
|
||||||
XGCValues gcvalue;
|
XGCValues gcvalue;
|
||||||
|
Drawable draw_buffer;
|
||||||
|
Pixmap pmap = None;
|
||||||
|
|
||||||
D_SCREEN(("scr_erase_screen(%d) at screen row: %d\n", mode, screen.row));
|
D_SCREEN(("scr_erase_screen(%d) at screen row: %d\n", mode, screen.row));
|
||||||
REFRESH_ZERO_SCROLLBACK;
|
REFRESH_ZERO_SCROLLBACK;
|
||||||
RESET_CHSTAT;
|
RESET_CHSTAT;
|
||||||
row_offset = TermWin.saveLines;
|
row_offset = TermWin.saveLines;
|
||||||
|
|
||||||
|
if (buffer_pixmap) {
|
||||||
|
draw_buffer = buffer_pixmap;
|
||||||
|
pmap = images[image_bg].current->pmap->pixmap;
|
||||||
|
} else {
|
||||||
|
draw_buffer = TermWin.vt;
|
||||||
|
}
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case 0: /* erase to end of screen */
|
case 0: /* erase to end of screen */
|
||||||
scr_erase_line(0);
|
scr_erase_line(0);
|
||||||
|
@ -1553,17 +1562,17 @@ scr_expose(int x, int y, int width, int height)
|
||||||
if (drawn_text == NULL) /* sanity check */
|
if (drawn_text == NULL) /* sanity check */
|
||||||
return;
|
return;
|
||||||
|
|
||||||
part_beg.col = Pixel2Col(x); /* round down */
|
part_beg.col = Pixel2Col(x);
|
||||||
part_beg.row = Pixel2Row(y); /* round down */
|
part_beg.row = Pixel2Row(y);
|
||||||
full_beg.col = Pixel2Col(x + TermWin.fwidth - 1); /* round up */
|
part_end.col = Pixel2Width(x + width + TermWin.fwidth - 1);
|
||||||
full_beg.row = Pixel2Row(y + TermWin.fheight - 1); /* round up */
|
part_end.row = Pixel2Row(y + height + TermWin.fheight - 1);
|
||||||
|
|
||||||
part_end.col = Pixel2Width(x + width + TermWin.fwidth - 1); /* round up */
|
full_beg.col = Pixel2Col(x + TermWin.fwidth - 1);
|
||||||
part_end.row = Pixel2Row(y + height + TermWin.fheight - 1); /* round up */
|
full_beg.row = Pixel2Row(y + TermWin.fheight - 1);
|
||||||
full_end.col = Pixel2Width(x + width); /* round down */
|
full_end.col = Pixel2Width(x + width);
|
||||||
full_end.row = Pixel2Row(y + height); /* round down */
|
full_end.row = Pixel2Row(y + height);
|
||||||
|
|
||||||
/* sanity checks */
|
/* sanity checks */
|
||||||
MAX_IT(part_beg.col, 0);
|
MAX_IT(part_beg.col, 0);
|
||||||
MAX_IT(full_beg.col, 0);
|
MAX_IT(full_beg.col, 0);
|
||||||
MAX_IT(part_end.col, 0);
|
MAX_IT(part_end.col, 0);
|
||||||
|
@ -1609,6 +1618,13 @@ scr_expose(int x, int y, int width, int height)
|
||||||
for (i = full_beg.row; i <= full_end.row; i++)
|
for (i = full_beg.row; i <= full_end.row; i++)
|
||||||
drawn_rend[i][part_end.col] = RS_Dirty;
|
drawn_rend[i][part_end.col] = RS_Dirty;
|
||||||
|
|
||||||
|
if (buffer_pixmap) {
|
||||||
|
x = Col2Pixel(full_beg.col);
|
||||||
|
y = Row2Pixel(full_beg.row);
|
||||||
|
XCopyArea(Xdisplay, images[image_bg].current->pmap->pixmap, buffer_pixmap, TermWin.gc, x, y, Width2Pixel(full_end.col - full_beg.col + 1),
|
||||||
|
Height2Pixel(full_end.row - full_beg.row + 1), x, y);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef USE_XIM
|
#ifdef USE_XIM
|
||||||
scr_refresh(FAST_REFRESH);
|
scr_refresh(FAST_REFRESH);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1713,15 +1729,6 @@ scr_printscreen(int fullhist)
|
||||||
* screen.text/screen.rend contain what the screen will change to.
|
* screen.text/screen.rend contain what the screen will change to.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define DRAW_STRING(Func, x, y, str, len) \
|
|
||||||
Func(Xdisplay, drawBuffer, TermWin.gc, x, y, str, len)
|
|
||||||
|
|
||||||
#ifndef NO_BRIGHTCOLOR
|
|
||||||
# define MONO_BOLD(x) (((x) & RS_Bold) && fore == fgColor)
|
|
||||||
#else
|
|
||||||
# define MONO_BOLD(x) ((x) & (RS_Bold|RS_Blink))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
void
|
||||||
scr_refresh(int type)
|
scr_refresh(int type)
|
||||||
{
|
{
|
||||||
|
@ -1753,8 +1760,9 @@ scr_refresh(int type)
|
||||||
XGCValues gcvalue; /* Graphics Context values */
|
XGCValues gcvalue; /* Graphics Context values */
|
||||||
char buf[MAX_COLS + 1];
|
char buf[MAX_COLS + 1];
|
||||||
register char *buffer = buf;
|
register char *buffer = buf;
|
||||||
|
Drawable draw_buffer;
|
||||||
|
Pixmap pmap = images[image_bg].current->pmap->pixmap;
|
||||||
int (*draw_string) (), (*draw_image_string) ();
|
int (*draw_string) (), (*draw_image_string) ();
|
||||||
int (*clear_area) () = XClearArea;
|
|
||||||
|
|
||||||
#ifndef NO_BOLDFONT
|
#ifndef NO_BOLDFONT
|
||||||
int bfont = 0; /* we've changed font to bold font */
|
int bfont = 0; /* we've changed font to bold font */
|
||||||
|
@ -1792,6 +1800,12 @@ scr_refresh(int type)
|
||||||
P_SETTIMEVAL(cnt.start);
|
P_SETTIMEVAL(cnt.start);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (buffer_pixmap) {
|
||||||
|
draw_buffer = buffer_pixmap;
|
||||||
|
} else {
|
||||||
|
draw_buffer = TermWin.vt;
|
||||||
|
}
|
||||||
|
|
||||||
row_offset = TermWin.saveLines - TermWin.view_start;
|
row_offset = TermWin.saveLines - TermWin.view_start;
|
||||||
fprop = TermWin.fprop;
|
fprop = TermWin.fprop;
|
||||||
|
|
||||||
|
@ -2050,13 +2064,13 @@ scr_refresh(int type)
|
||||||
SWAP_IT(gcvalue.foreground, gcvalue.background, ltmp);
|
SWAP_IT(gcvalue.foreground, gcvalue.background, ltmp);
|
||||||
gcmask |= (GCForeground | GCBackground);
|
gcmask |= (GCForeground | GCBackground);
|
||||||
XChangeGC(Xdisplay, TermWin.gc, gcmask, &gcvalue);
|
XChangeGC(Xdisplay, TermWin.gc, gcmask, &gcvalue);
|
||||||
XFillRectangle(Xdisplay, drawBuffer, TermWin.gc,
|
XFillRectangle(Xdisplay, draw_buffer, TermWin.gc,
|
||||||
xpixel, ypixel - TermWin.font->ascent,
|
xpixel, ypixel - TermWin.font->ascent,
|
||||||
Width2Pixel(1), Height2Pixel(1));
|
Width2Pixel(1), Height2Pixel(1));
|
||||||
SWAP_IT(gcvalue.foreground, gcvalue.background, ltmp);
|
SWAP_IT(gcvalue.foreground, gcvalue.background, ltmp);
|
||||||
XChangeGC(Xdisplay, TermWin.gc, gcmask, &gcvalue);
|
XChangeGC(Xdisplay, TermWin.gc, gcmask, &gcvalue);
|
||||||
} else {
|
} else {
|
||||||
FAST_CLEAR_CHARS(xpixel, ypixel - TermWin.font->ascent, 1);
|
CLEAR_CHARS(xpixel, ypixel - TermWin.font->ascent, 1);
|
||||||
}
|
}
|
||||||
DRAW_STRING(draw_string, xpixel, ypixel, buffer, 1);
|
DRAW_STRING(draw_string, xpixel, ypixel, buffer, 1);
|
||||||
#ifndef NO_BOLDOVERSTRIKE
|
#ifndef NO_BOLDOVERSTRIKE
|
||||||
|
@ -2066,13 +2080,13 @@ scr_refresh(int type)
|
||||||
} else
|
} else
|
||||||
#ifdef PIXMAP_SUPPORT
|
#ifdef PIXMAP_SUPPORT
|
||||||
if (background_is_pixmap() && (back == bgColor)) {
|
if (background_is_pixmap() && (back == bgColor)) {
|
||||||
FAST_CLEAR_CHARS(xpixel, ypixel - TermWin.font->ascent, len);
|
CLEAR_CHARS(xpixel, ypixel - TermWin.font->ascent, len);
|
||||||
DRAW_STRING(draw_string, xpixel, ypixel, buffer, wlen);
|
DRAW_STRING(draw_string, xpixel, ypixel, buffer, wlen);
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#ifdef FORCE_CLEAR_CHARS
|
#ifdef FORCE_CLEAR_CHARS
|
||||||
FAST_CLEAR_CHARS(xpixel, ypixel - TermWin.font->ascent, len);
|
CLEAR_CHARS(xpixel, ypixel - TermWin.font->ascent, len);
|
||||||
#endif
|
#endif
|
||||||
DRAW_STRING(draw_image_string, xpixel, ypixel, buffer, wlen);
|
DRAW_STRING(draw_image_string, xpixel, ypixel, buffer, wlen);
|
||||||
}
|
}
|
||||||
|
@ -2084,7 +2098,7 @@ scr_refresh(int type)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((rend & RS_Uline) && (TermWin.font->descent > 1))
|
if ((rend & RS_Uline) && (TermWin.font->descent > 1))
|
||||||
XDrawLine(Xdisplay, drawBuffer, TermWin.gc,
|
XDrawLine(Xdisplay, draw_buffer, TermWin.gc,
|
||||||
xpixel, ypixel + 1,
|
xpixel, ypixel + 1,
|
||||||
xpixel + Width2Pixel(len) - 1, ypixel + 1);
|
xpixel + Width2Pixel(len) - 1, ypixel + 1);
|
||||||
if (is_cursor == 1) {
|
if (is_cursor == 1) {
|
||||||
|
@ -2095,7 +2109,7 @@ scr_refresh(int type)
|
||||||
XChangeGC(Xdisplay, TermWin.gc, gcmask, &gcvalue);
|
XChangeGC(Xdisplay, TermWin.gc, gcmask, &gcvalue);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
XDrawRectangle(Xdisplay, drawBuffer, TermWin.gc,
|
XDrawRectangle(Xdisplay, draw_buffer, TermWin.gc,
|
||||||
xpixel, ypixel - TermWin.font->ascent,
|
xpixel, ypixel - TermWin.font->ascent,
|
||||||
Width2Pixel(1 + wbyte) - 1, Height2Pixel(1) - 1);
|
Width2Pixel(1 + wbyte) - 1, Height2Pixel(1) - 1);
|
||||||
}
|
}
|
||||||
|
@ -2127,17 +2141,18 @@ scr_refresh(int type)
|
||||||
screen.rend[row][col - 1] &= ~RS_Cursor;
|
screen.rend[row][col - 1] &= ~RS_Cursor;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (boldlast) {
|
if (buffer_pixmap) {
|
||||||
XClearArea(Xdisplay, TermWin.vt, TermWin_TotalWidth() - 2, 0,
|
|
||||||
1, TermWin_TotalHeight() - 1, 0);
|
|
||||||
}
|
|
||||||
if (boldlast) {
|
|
||||||
XClearArea(Xdisplay, TermWin.vt, TermWin_TotalWidth() - 2, 0,
|
|
||||||
1, TermWin_TotalHeight() - 1, 0);
|
|
||||||
}
|
|
||||||
#if defined(PIXMAP_SUPPORT) && defined(PIXMAP_BUFFERING)
|
|
||||||
XClearWindow(Xdisplay, TermWin.vt);
|
XClearWindow(Xdisplay, TermWin.vt);
|
||||||
#endif
|
} else {
|
||||||
|
if (boldlast) {
|
||||||
|
XClearArea(Xdisplay, TermWin.vt, TermWin_TotalWidth() - 2, 0,
|
||||||
|
1, TermWin_TotalHeight() - 1, 0);
|
||||||
|
}
|
||||||
|
if (boldlast) {
|
||||||
|
XClearArea(Xdisplay, TermWin.vt, TermWin_TotalWidth() - 2, 0,
|
||||||
|
1, TermWin_TotalHeight() - 1, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (type == SLOW_REFRESH) {
|
if (type == SLOW_REFRESH) {
|
||||||
XSync(Xdisplay, False);
|
XSync(Xdisplay, False);
|
||||||
}
|
}
|
||||||
|
|
30
src/screen.h
30
src/screen.h
|
@ -42,22 +42,20 @@
|
||||||
* CLEAR_CHARS: clear <num> chars starting from pixel position <x,y>
|
* CLEAR_CHARS: clear <num> chars starting from pixel position <x,y>
|
||||||
* ERASE_ROWS : set <num> rows starting from row <row> to the foreground color
|
* ERASE_ROWS : set <num> rows starting from row <row> to the foreground color
|
||||||
*/
|
*/
|
||||||
#define drawBuffer (TermWin.vt)
|
#define CLEAR_ROWS(row, num) ((buffer_pixmap) \
|
||||||
#define CLEAR_ROWS(row, num) do { \
|
? (XCopyArea(Xdisplay, pmap, buffer_pixmap, TermWin.gc, Col2Pixel(0), Row2Pixel(row), TermWin.width, Height2Pixel(num), \
|
||||||
XClearArea(Xdisplay, drawBuffer, Col2Pixel(0), Row2Pixel(row), \
|
Col2Pixel(0), Row2Pixel(row))) \
|
||||||
TermWin.width, Height2Pixel(num), 0); \
|
: (XClearArea(Xdisplay, TermWin.vt, Col2Pixel(0), Row2Pixel(row), TermWin.width, Height2Pixel(num), 0)))
|
||||||
} while (0)
|
#define CLEAR_CHARS(x, y, num) ((buffer_pixmap) \
|
||||||
#define CLEAR_CHARS(x, y, num) do { \
|
? (XCopyArea(Xdisplay, pmap, buffer_pixmap, TermWin.gc, x, y, Width2Pixel(num), Height2Pixel(1), x, y)) \
|
||||||
D_SCREEN(("CLEAR_CHARS(%d, %d, %d)\n", x, y, num)); \
|
: (XClearArea(Xdisplay, TermWin.vt, x, y, Width2Pixel(num), Height2Pixel(1), 0)))
|
||||||
XClearArea(Xdisplay, drawBuffer, x, y, Width2Pixel(num), Height2Pixel(1), 0); \
|
#define ERASE_ROWS(row, num) (XFillRectangle(Xdisplay, draw_buffer, TermWin.gc, Col2Pixel(0), Row2Pixel(row), TermWin.width, Height2Pixel(num)))
|
||||||
} while (0)
|
#define DRAW_STRING(Func, x, y, str, len) Func(Xdisplay, draw_buffer, TermWin.gc, x, y, str, len)
|
||||||
#define FAST_CLEAR_CHARS(x, y, num) do { \
|
#ifndef NO_BRIGHTCOLOR
|
||||||
clear_area(Xdisplay, drawBuffer, x, y, Width2Pixel(num), Height2Pixel(1), 0); \
|
# define MONO_BOLD(x) (((x) & RS_Bold) && fore == fgColor)
|
||||||
} while (0)
|
#else
|
||||||
#define ERASE_ROWS(row, num) do { \
|
# define MONO_BOLD(x) ((x) & (RS_Bold|RS_Blink))
|
||||||
XFillRectangle(Xdisplay, drawBuffer, TermWin.gc, Col2Pixel(0), Row2Pixel(row), \
|
#endif
|
||||||
TermWin.width, Height2Pixel(num)); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/* Screen refresh methods */
|
/* Screen refresh methods */
|
||||||
#define NO_REFRESH 0 /* Window not visible at all! */
|
#define NO_REFRESH 0 /* Window not visible at all! */
|
||||||
|
|
|
@ -442,13 +442,8 @@ Create_Windows(int argc, char *argv[])
|
||||||
XMapWindow(Xdisplay, TermWin.vt);
|
XMapWindow(Xdisplay, TermWin.vt);
|
||||||
XMapWindow(Xdisplay, TermWin.parent);
|
XMapWindow(Xdisplay, TermWin.parent);
|
||||||
XSetWindowBackground(Xdisplay, TermWin.vt, PixColors[bgColor]);
|
XSetWindowBackground(Xdisplay, TermWin.vt, PixColors[bgColor]);
|
||||||
XClearWindow(Xdisplay, TermWin.vt);
|
|
||||||
|
|
||||||
#ifdef PIXMAP_SUPPORT
|
render_simage(images[image_bg].current, TermWin.vt, TermWin_TotalWidth(), TermWin_TotalHeight(), image_bg, 0);
|
||||||
if (background_is_image()) {
|
|
||||||
render_simage(images[image_bg].norm, TermWin.vt, TermWin_TotalWidth(), TermWin_TotalHeight(), image_bg, 0);
|
|
||||||
}
|
|
||||||
#endif /* PIXMAP_SUPPORT */
|
|
||||||
|
|
||||||
/* graphics context for the vt window */
|
/* graphics context for the vt window */
|
||||||
{
|
{
|
||||||
|
@ -624,7 +619,7 @@ set_window_color(int idx, const char *color)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (idx == bgColor) {
|
if (!background_is_pixmap() && (idx == bgColor)) {
|
||||||
XSetWindowBackground(Xdisplay, TermWin.vt, PixColors[bgColor]);
|
XSetWindowBackground(Xdisplay, TermWin.vt, PixColors[bgColor]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,6 +93,18 @@ begin main
|
||||||
# font bold 7x14
|
# font bold 7x14
|
||||||
end attributes
|
end attributes
|
||||||
|
|
||||||
|
# The Multichar support options. Same goes for these fonts as for the normal
|
||||||
|
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
||||||
|
# or big5 or gb
|
||||||
|
# begin multichar
|
||||||
|
# font 0 k14
|
||||||
|
# font 1 jiskan16
|
||||||
|
# font 2 jiskan18
|
||||||
|
# font 3 jiskan24
|
||||||
|
# font 4 jiskan26
|
||||||
|
# encoding eucj
|
||||||
|
# end multichar
|
||||||
|
|
||||||
# Define the imageclasses.
|
# Define the imageclasses.
|
||||||
begin imageclasses
|
begin imageclasses
|
||||||
|
|
||||||
|
@ -220,7 +232,7 @@ begin main
|
||||||
end image
|
end image
|
||||||
end
|
end
|
||||||
|
|
||||||
%include "Eterm-menu.cfg"
|
%include "menus.cfg"
|
||||||
|
|
||||||
# This section *must* come after the menu definitions if you want
|
# This section *must* come after the menu definitions if you want
|
||||||
# menu actions to work. C'est la vie. :-)
|
# menu actions to work. C'est la vie. :-)
|
||||||
|
@ -234,18 +246,6 @@ begin main
|
||||||
bind anymod 0xffbe to menu Eterm
|
bind anymod 0xffbe to menu Eterm
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# The Multichar support options. Same goes for these fonts as for the normal
|
|
||||||
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
|
||||||
# or big5 or gb
|
|
||||||
# begin multichar
|
|
||||||
# font 0 k14
|
|
||||||
# font 1 jiskan16
|
|
||||||
# font 2 jiskan18
|
|
||||||
# font 3 jiskan24
|
|
||||||
# font 4 jiskan26
|
|
||||||
# encoding eucj
|
|
||||||
# end multichar
|
|
||||||
|
|
||||||
# The XIM support options.
|
# The XIM support options.
|
||||||
# input_method: set the name of your favorate input method program
|
# input_method: set the name of your favorate input method program
|
||||||
# preedit_type: OverTheSpot or OffTheSpot or Root
|
# preedit_type: OverTheSpot or OffTheSpot or Root
|
||||||
|
@ -303,6 +303,11 @@ begin main
|
||||||
# If true, Eterm will run with no window borders.
|
# If true, Eterm will run with no window borders.
|
||||||
borderless false
|
borderless false
|
||||||
|
|
||||||
|
# If true, Eterm will use a double-buffered background pixmap for drawing text. This
|
||||||
|
# makes redraws faster by reducing exposes, but it uses more memory. If you have the
|
||||||
|
# memory to spare, it's a good idea.
|
||||||
|
# double_buffer true
|
||||||
|
|
||||||
end toggles
|
end toggles
|
||||||
|
|
||||||
begin keyboard
|
begin keyboard
|
||||||
|
|
|
@ -16,6 +16,13 @@ all: Makefile
|
||||||
install-data-hook:
|
install-data-hook:
|
||||||
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/themes
|
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/themes
|
||||||
-@for i in $(THEMES) ; do \
|
-@for i in $(THEMES) ; do \
|
||||||
|
if test -d $(DESTDIR)$(pkgdatadir)/themes/$$i -a "@REMOVE_THEMES@" = "yes"; then \
|
||||||
|
echo "Removing $$i theme in $(DESTDIR)$(pkgdatadir)/themes as requested." ; \
|
||||||
|
$(RM) -rf $(DESTDIR)$(pkgdatadir)/themes/$$i ; \
|
||||||
|
if test -d $(DESTDIR)$(pkgdatadir)/themes/$$i ; then \
|
||||||
|
echo "ERROR: Unable to remove theme." ; \
|
||||||
|
fi ; \
|
||||||
|
fi ; \
|
||||||
if test ! -d $(DESTDIR)$(pkgdatadir)/themes/$$i ; then \
|
if test ! -d $(DESTDIR)$(pkgdatadir)/themes/$$i ; then \
|
||||||
echo "Installing $$i theme in $(DESTDIR)$(pkgdatadir)/themes" ; \
|
echo "Installing $$i theme in $(DESTDIR)$(pkgdatadir)/themes" ; \
|
||||||
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/themes/$$i ; \
|
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/themes/$$i ; \
|
||||||
|
@ -24,6 +31,6 @@ install-data-hook:
|
||||||
$(CHMOD) 644 $(DESTDIR)$(pkgdatadir)/themes/$$i/???* ; \
|
$(CHMOD) 644 $(DESTDIR)$(pkgdatadir)/themes/$$i/???* ; \
|
||||||
rm -f $(DESTDIR)$(pkgdatadir)/themes/$$i/theme.cfg.in ; \
|
rm -f $(DESTDIR)$(pkgdatadir)/themes/$$i/theme.cfg.in ; \
|
||||||
else \
|
else \
|
||||||
echo "ALERT! Not overwriting theme $$i in $(DESTDIR)$(pkgdatadir)/themes. You will need to update this theme manually." ; \
|
echo "ALERT! Not overwriting $$i theme in $(DESTDIR)$(pkgdatadir)/themes. You will need to update this theme manually." ; \
|
||||||
fi ; \
|
fi ; \
|
||||||
done
|
done
|
||||||
|
|
|
@ -93,6 +93,18 @@ begin main
|
||||||
# font bold 7x14
|
# font bold 7x14
|
||||||
end attributes
|
end attributes
|
||||||
|
|
||||||
|
# The Multichar support options. Same goes for these fonts as for the normal
|
||||||
|
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
||||||
|
# or big5 or gb
|
||||||
|
# begin multichar
|
||||||
|
# font 0 k14
|
||||||
|
# font 1 jiskan16
|
||||||
|
# font 2 jiskan18
|
||||||
|
# font 3 jiskan24
|
||||||
|
# font 4 jiskan26
|
||||||
|
# encoding eucj
|
||||||
|
# end multichar
|
||||||
|
|
||||||
# Define the imageclasses.
|
# Define the imageclasses.
|
||||||
begin imageclasses
|
begin imageclasses
|
||||||
|
|
||||||
|
@ -220,7 +232,7 @@ begin main
|
||||||
end image
|
end image
|
||||||
end
|
end
|
||||||
|
|
||||||
%include "auto-menu.cfg"
|
%include "menus.cfg"
|
||||||
|
|
||||||
# This section *must* come after the menu definitions if you want
|
# This section *must* come after the menu definitions if you want
|
||||||
# menu actions to work. C'est la vie. :-)
|
# menu actions to work. C'est la vie. :-)
|
||||||
|
@ -234,18 +246,6 @@ begin main
|
||||||
bind anymod 0xffbe to menu Eterm
|
bind anymod 0xffbe to menu Eterm
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# The Multichar support options. Same goes for these fonts as for the normal
|
|
||||||
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
|
||||||
# or big5 or gb
|
|
||||||
# begin multichar
|
|
||||||
# font 0 k14
|
|
||||||
# font 1 jiskan16
|
|
||||||
# font 2 jiskan18
|
|
||||||
# font 3 jiskan24
|
|
||||||
# font 4 jiskan26
|
|
||||||
# encoding eucj
|
|
||||||
# end multichar
|
|
||||||
|
|
||||||
# The XIM support options.
|
# The XIM support options.
|
||||||
# input_method: set the name of your favorate input method program
|
# input_method: set the name of your favorate input method program
|
||||||
# preedit_type: OverTheSpot or OffTheSpot or Root
|
# preedit_type: OverTheSpot or OffTheSpot or Root
|
||||||
|
|
|
@ -92,6 +92,18 @@ begin main
|
||||||
# font bold 7x14
|
# font bold 7x14
|
||||||
end attributes
|
end attributes
|
||||||
|
|
||||||
|
# The Multichar support options. Same goes for these fonts as for the normal
|
||||||
|
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
||||||
|
# or big5 or gb
|
||||||
|
# begin multichar
|
||||||
|
# font 0 k14
|
||||||
|
# font 1 jiskan16
|
||||||
|
# font 2 jiskan18
|
||||||
|
# font 3 jiskan24
|
||||||
|
# font 4 jiskan26
|
||||||
|
# encoding eucj
|
||||||
|
# end multichar
|
||||||
|
|
||||||
# Define the imageclasses.
|
# Define the imageclasses.
|
||||||
begin imageclasses
|
begin imageclasses
|
||||||
|
|
||||||
|
@ -219,7 +231,7 @@ begin main
|
||||||
end image
|
end image
|
||||||
end
|
end
|
||||||
|
|
||||||
%include "cEterm-menu.cfg"
|
%include "menus.cfg"
|
||||||
|
|
||||||
# This section *must* come after the menu definitions if you want
|
# This section *must* come after the menu definitions if you want
|
||||||
# menu actions to work. C'est la vie. :-)
|
# menu actions to work. C'est la vie. :-)
|
||||||
|
@ -233,18 +245,6 @@ begin main
|
||||||
bind anymod 0xffbe to menu Eterm
|
bind anymod 0xffbe to menu Eterm
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# The Multichar support options. Same goes for these fonts as for the normal
|
|
||||||
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
|
||||||
# or big5 or gb
|
|
||||||
# begin multichar
|
|
||||||
# font 0 k14
|
|
||||||
# font 1 jiskan16
|
|
||||||
# font 2 jiskan18
|
|
||||||
# font 3 jiskan24
|
|
||||||
# font 4 jiskan26
|
|
||||||
# encoding eucj
|
|
||||||
# end multichar
|
|
||||||
|
|
||||||
# The XIM support options.
|
# The XIM support options.
|
||||||
# input_method: set the name of your favorate input method program
|
# input_method: set the name of your favorate input method program
|
||||||
# preedit_type: OverTheSpot or OffTheSpot or Root
|
# preedit_type: OverTheSpot or OffTheSpot or Root
|
||||||
|
|
|
@ -93,6 +93,18 @@ begin main
|
||||||
# font bold 7x14
|
# font bold 7x14
|
||||||
end attributes
|
end attributes
|
||||||
|
|
||||||
|
# The Multichar support options. Same goes for these fonts as for the normal
|
||||||
|
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
||||||
|
# or big5 or gb
|
||||||
|
# begin multichar
|
||||||
|
# font 0 k14
|
||||||
|
# font 1 jiskan16
|
||||||
|
# font 2 jiskan18
|
||||||
|
# font 3 jiskan24
|
||||||
|
# font 4 jiskan26
|
||||||
|
# encoding eucj
|
||||||
|
# end multichar
|
||||||
|
|
||||||
# Define the imageclasses.
|
# Define the imageclasses.
|
||||||
begin imageclasses
|
begin imageclasses
|
||||||
|
|
||||||
|
@ -220,7 +232,7 @@ begin main
|
||||||
end image
|
end image
|
||||||
end
|
end
|
||||||
|
|
||||||
%include "chooser-menu.cfg"
|
%include "menus.cfg"
|
||||||
|
|
||||||
# This section *must* come after the menu definitions if you want
|
# This section *must* come after the menu definitions if you want
|
||||||
# menu actions to work. C'est la vie. :-)
|
# menu actions to work. C'est la vie. :-)
|
||||||
|
@ -234,18 +246,6 @@ begin main
|
||||||
bind anymod 0xffbe to menu Eterm
|
bind anymod 0xffbe to menu Eterm
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# The Multichar support options. Same goes for these fonts as for the normal
|
|
||||||
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
|
||||||
# or big5 or gb
|
|
||||||
# begin multichar
|
|
||||||
# font 0 k14
|
|
||||||
# font 1 jiskan16
|
|
||||||
# font 2 jiskan18
|
|
||||||
# font 3 jiskan24
|
|
||||||
# font 4 jiskan26
|
|
||||||
# encoding eucj
|
|
||||||
# end multichar
|
|
||||||
|
|
||||||
# The XIM support options.
|
# The XIM support options.
|
||||||
# input_method: set the name of your favorate input method program
|
# input_method: set the name of your favorate input method program
|
||||||
# preedit_type: OverTheSpot or OffTheSpot or Root
|
# preedit_type: OverTheSpot or OffTheSpot or Root
|
||||||
|
|
|
@ -93,6 +93,18 @@ begin main
|
||||||
# font bold 7x14
|
# font bold 7x14
|
||||||
end attributes
|
end attributes
|
||||||
|
|
||||||
|
# The Multichar support options. Same goes for these fonts as for the normal
|
||||||
|
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
||||||
|
# or big5 or gb
|
||||||
|
# begin multichar
|
||||||
|
# font 0 k14
|
||||||
|
# font 1 jiskan16
|
||||||
|
# font 2 jiskan18
|
||||||
|
# font 3 jiskan24
|
||||||
|
# font 4 jiskan26
|
||||||
|
# encoding eucj
|
||||||
|
# end multichar
|
||||||
|
|
||||||
# Define the imageclasses.
|
# Define the imageclasses.
|
||||||
begin imageclasses
|
begin imageclasses
|
||||||
|
|
||||||
|
@ -220,7 +232,7 @@ begin main
|
||||||
end image
|
end image
|
||||||
end
|
end
|
||||||
|
|
||||||
%include "emacs-menu.cfg"
|
%include "menus.cfg"
|
||||||
|
|
||||||
# This section *must* come after the menu definitions if you want
|
# This section *must* come after the menu definitions if you want
|
||||||
# menu actions to work. C'est la vie. :-)
|
# menu actions to work. C'est la vie. :-)
|
||||||
|
@ -234,18 +246,6 @@ begin main
|
||||||
bind anymod 0xffbe to menu Eterm
|
bind anymod 0xffbe to menu Eterm
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# The Multichar support options. Same goes for these fonts as for the normal
|
|
||||||
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
|
||||||
# or big5 or gb
|
|
||||||
# begin multichar
|
|
||||||
# font 0 k14
|
|
||||||
# font 1 jiskan16
|
|
||||||
# font 2 jiskan18
|
|
||||||
# font 3 jiskan24
|
|
||||||
# font 4 jiskan26
|
|
||||||
# encoding eucj
|
|
||||||
# end multichar
|
|
||||||
|
|
||||||
# The XIM support options.
|
# The XIM support options.
|
||||||
# input_method: set the name of your favorate input method program
|
# input_method: set the name of your favorate input method program
|
||||||
# preedit_type: OverTheSpot or OffTheSpot or Root
|
# preedit_type: OverTheSpot or OffTheSpot or Root
|
||||||
|
|
|
@ -95,6 +95,18 @@ begin main
|
||||||
# font bold 7x14
|
# font bold 7x14
|
||||||
end attributes
|
end attributes
|
||||||
|
|
||||||
|
# The Multichar support options. Same goes for these fonts as for the normal
|
||||||
|
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
||||||
|
# or big5 or gb
|
||||||
|
# begin multichar
|
||||||
|
# font 0 k14
|
||||||
|
# font 1 jiskan16
|
||||||
|
# font 2 jiskan18
|
||||||
|
# font 3 jiskan24
|
||||||
|
# font 4 jiskan26
|
||||||
|
# encoding eucj
|
||||||
|
# end multichar
|
||||||
|
|
||||||
# Define the imageclasses.
|
# Define the imageclasses.
|
||||||
begin imageclasses
|
begin imageclasses
|
||||||
|
|
||||||
|
@ -222,7 +234,7 @@ begin main
|
||||||
end image
|
end image
|
||||||
end
|
end
|
||||||
|
|
||||||
%include "irc-menu.cfg"
|
%include "menus.cfg"
|
||||||
|
|
||||||
# This section *must* come after the menu definitions if you want
|
# This section *must* come after the menu definitions if you want
|
||||||
# menu actions to work. C'est la vie. :-)
|
# menu actions to work. C'est la vie. :-)
|
||||||
|
@ -236,18 +248,6 @@ begin main
|
||||||
bind anymod 0xffbe to menu Eterm
|
bind anymod 0xffbe to menu Eterm
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# The Multichar support options. Same goes for these fonts as for the normal
|
|
||||||
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
|
||||||
# or big5 or gb
|
|
||||||
# begin multichar
|
|
||||||
# font 0 k14
|
|
||||||
# font 1 jiskan16
|
|
||||||
# font 2 jiskan18
|
|
||||||
# font 3 jiskan24
|
|
||||||
# font 4 jiskan26
|
|
||||||
# encoding eucj
|
|
||||||
# end multichar
|
|
||||||
|
|
||||||
# The XIM support options.
|
# The XIM support options.
|
||||||
# input_method: set the name of your favorate input method program
|
# input_method: set the name of your favorate input method program
|
||||||
# preedit_type: OverTheSpot or OffTheSpot or Root
|
# preedit_type: OverTheSpot or OffTheSpot or Root
|
||||||
|
@ -300,6 +300,11 @@ begin main
|
||||||
# If true, Eterm will run with no window borders.
|
# If true, Eterm will run with no window borders.
|
||||||
borderless false
|
borderless false
|
||||||
|
|
||||||
|
# If true, Eterm will use a double-buffered background pixmap for drawing text. This
|
||||||
|
# makes redraws faster by reducing exposes, but it uses more memory. If you have the
|
||||||
|
# memory to spare, it's a good idea.
|
||||||
|
# double_buffer true
|
||||||
|
|
||||||
end toggles
|
end toggles
|
||||||
|
|
||||||
begin keyboard
|
begin keyboard
|
||||||
|
|
|
@ -93,6 +93,18 @@ begin main
|
||||||
# font bold 7x14
|
# font bold 7x14
|
||||||
end attributes
|
end attributes
|
||||||
|
|
||||||
|
# The Multichar support options. Same goes for these fonts as for the normal
|
||||||
|
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
||||||
|
# or big5 or gb
|
||||||
|
# begin multichar
|
||||||
|
# font 0 k14
|
||||||
|
# font 1 jiskan16
|
||||||
|
# font 2 jiskan18
|
||||||
|
# font 3 jiskan24
|
||||||
|
# font 4 jiskan26
|
||||||
|
# encoding eucj
|
||||||
|
# end multichar
|
||||||
|
|
||||||
# Define the imageclasses.
|
# Define the imageclasses.
|
||||||
begin imageclasses
|
begin imageclasses
|
||||||
|
|
||||||
|
@ -166,7 +178,7 @@ begin main
|
||||||
end image
|
end image
|
||||||
end
|
end
|
||||||
|
|
||||||
%include "mutt-menu.cfg"
|
%include "menus.cfg"
|
||||||
|
|
||||||
# This section *must* come after the menu definitions if you want
|
# This section *must* come after the menu definitions if you want
|
||||||
# menu actions to work. C'est la vie. :-)
|
# menu actions to work. C'est la vie. :-)
|
||||||
|
@ -180,18 +192,6 @@ begin main
|
||||||
bind anymod 0xffbe to menu Eterm
|
bind anymod 0xffbe to menu Eterm
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# The Multichar support options. Same goes for these fonts as for the normal
|
|
||||||
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
|
||||||
# or big5 or gb
|
|
||||||
# begin multichar
|
|
||||||
# font 0 k14
|
|
||||||
# font 1 jiskan16
|
|
||||||
# font 2 jiskan18
|
|
||||||
# font 3 jiskan24
|
|
||||||
# font 4 jiskan26
|
|
||||||
# encoding eucj
|
|
||||||
# end multichar
|
|
||||||
|
|
||||||
# The XIM support options.
|
# The XIM support options.
|
||||||
# input_method: set the name of your favorate input method program
|
# input_method: set the name of your favorate input method program
|
||||||
# preedit_type: OverTheSpot or OffTheSpot or Root
|
# preedit_type: OverTheSpot or OffTheSpot or Root
|
||||||
|
@ -244,6 +244,11 @@ begin main
|
||||||
# If true, Eterm will run with no window borders.
|
# If true, Eterm will run with no window borders.
|
||||||
borderless false
|
borderless false
|
||||||
|
|
||||||
|
# If true, Eterm will use a double-buffered background pixmap for drawing text. This
|
||||||
|
# makes redraws faster by reducing exposes, but it uses more memory. If you have the
|
||||||
|
# memory to spare, it's a good idea.
|
||||||
|
# double_buffer true
|
||||||
|
|
||||||
end toggles
|
end toggles
|
||||||
|
|
||||||
begin keyboard
|
begin keyboard
|
||||||
|
|
|
@ -93,6 +93,18 @@ begin main
|
||||||
# font bold 7x14
|
# font bold 7x14
|
||||||
end attributes
|
end attributes
|
||||||
|
|
||||||
|
# The Multichar support options. Same goes for these fonts as for the normal
|
||||||
|
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
||||||
|
# or big5 or gb
|
||||||
|
# begin multichar
|
||||||
|
# font 0 k14
|
||||||
|
# font 1 jiskan16
|
||||||
|
# font 2 jiskan18
|
||||||
|
# font 3 jiskan24
|
||||||
|
# font 4 jiskan26
|
||||||
|
# encoding eucj
|
||||||
|
# end multichar
|
||||||
|
|
||||||
# Define the imageclasses.
|
# Define the imageclasses.
|
||||||
begin imageclasses
|
begin imageclasses
|
||||||
|
|
||||||
|
@ -220,7 +232,7 @@ begin main
|
||||||
end image
|
end image
|
||||||
end
|
end
|
||||||
|
|
||||||
%include "trans-menu.cfg"
|
%include "menus.cfg"
|
||||||
|
|
||||||
# This section *must* come after the menu definitions if you want
|
# This section *must* come after the menu definitions if you want
|
||||||
# menu actions to work. C'est la vie. :-)
|
# menu actions to work. C'est la vie. :-)
|
||||||
|
@ -234,18 +246,6 @@ begin main
|
||||||
bind anymod 0xffbe to menu Eterm
|
bind anymod 0xffbe to menu Eterm
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# The Multichar support options. Same goes for these fonts as for the normal
|
|
||||||
# ones. The "encoding" attribute can be either "eucj" or "sjis" or "euckr"
|
|
||||||
# or big5 or gb
|
|
||||||
# begin multichar
|
|
||||||
# font 0 k14
|
|
||||||
# font 1 jiskan16
|
|
||||||
# font 2 jiskan18
|
|
||||||
# font 3 jiskan24
|
|
||||||
# font 4 jiskan26
|
|
||||||
# encoding eucj
|
|
||||||
# end multichar
|
|
||||||
|
|
||||||
# The XIM support options.
|
# The XIM support options.
|
||||||
# input_method: set the name of your favorate input method program
|
# input_method: set the name of your favorate input method program
|
||||||
# preedit_type: OverTheSpot or OffTheSpot or Root
|
# preedit_type: OverTheSpot or OffTheSpot or Root
|
||||||
|
|
Loading…
Reference in New Issue