summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Jennings <mej@kainx.org>2004-12-14 23:24:33 +0000
committerMichael Jennings <mej@kainx.org>2004-12-14 23:24:33 +0000
commit19cae1a53d440fa0de02bf6c27f1bd9012a17a71 (patch)
tree2ff66002005d86266d8039d29d36316ecdb964ed
parentf8a0003371cbaa0bf81180edd0920dc31b4877ab (diff)
downloadeterm-19cae1a53d440fa0de02bf6c27f1bd9012a17a71.tar.gz
Tue Dec 14 17:22:23 2004 Michael Jennings (mej)
The benefits of being a passenger on a long road trip... The beginnings of EWMH opacity (a la xcompmgr) support and (hopefully) UTF-8 support. Both as yet untested. ---------------------------------------------------------------------- SVN revision: 12471
-rw-r--r--ChangeLog6
-rw-r--r--Eterm.spec7
-rw-r--r--configure.in2
-rw-r--r--src/command.c58
-rw-r--r--src/feature.h2
-rw-r--r--src/options.c8
-rw-r--r--src/options.h1
-rw-r--r--src/screen.c18
-rw-r--r--src/startup.c1
-rw-r--r--src/startup.h1
-rw-r--r--src/term.c50
-rw-r--r--src/windows.c25
12 files changed, 132 insertions, 47 deletions
diff --git a/ChangeLog b/ChangeLog
index 3590e06..1a11fed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5265,3 +5265,9 @@ Tue Dec 14 17:13:02 2004 Michael Jennings (mej)
0.9.3 release
----------------------------------------------------------------------
+Tue Dec 14 17:22:23 2004 Michael Jennings (mej)
+
+The benefits of being a passenger on a long road trip... The
+beginnings of EWMH opacity (a la xcompmgr) support and (hopefully)
+UTF-8 support. Both as yet untested.
+----------------------------------------------------------------------
diff --git a/Eterm.spec b/Eterm.spec
index 3bd97d7..164a093 100644
--- a/Eterm.spec
+++ b/Eterm.spec
@@ -4,11 +4,14 @@
Summary: Enlightened terminal emulator
Name: Eterm
-Version: 0.9.3
-Release: 1
+Version: 0.9.4
+#Release: 1
+Release: 0.%(date '+%Y%m%d')
License: BSD
Group: User Interface/X
Requires: imlib2, imlib2-loader_jpeg, imlib2-loader_png
+#BuildSuggests: XFree86-devel xorg-x11-devel freetype-devel
+BuildRequires: imlib2-devel
Source0: ftp://ftp.eterm.org/pub/Eterm/%{name}-%{version}.tar.%{compression}
Source1: ftp://ftp.eterm.org/pub/Eterm/%{name}-bg-%{version}.tar.%{compression}
URL: http://www.eterm.org/
diff --git a/configure.in b/configure.in
index c851a98..854ccb2 100644
--- a/configure.in
+++ b/configure.in
@@ -22,7 +22,7 @@ SAVE_AUTOMAKE="$AUTOMAKE"
SAVE_AUTOCONF="$AUTOCONF"
AC_INIT(src/feature.h)
-AM_INIT_AUTOMAKE(Eterm, 0.9.3)
+AM_INIT_AUTOMAKE(Eterm, 0.9.4)
dnl# Set some basic variables
DATE="`date '+%d %B %Y'`"
diff --git a/src/command.c b/src/command.c
index a3544b5..54a85c6 100644
--- a/src/command.c
+++ b/src/command.c
@@ -107,6 +107,11 @@ static const char cvs_ident[] = "$Id$";
#if defined(linux)
# include <linux/tty.h> /* For N_TTY_BUF_SIZE. */
#endif
+#ifdef MULTI_CHARSET
+# include <locale.h>
+# include <langinfo.h>
+# include <iconv.h>
+#endif
/* Eterm-specific Headers */
#include "command.h"
@@ -3464,9 +3469,7 @@ main_loop(void)
if (ch >= ' ' || ch == '\t' || ch == '\n' || ch == '\r') {
/* Read a text string from the input buffer */
int nlines = 0;
-
- /* unsigned char * str; */
- register unsigned char *str;
+ unsigned char *str;
D_CMD(("Command buffer contains %d characters.\n", cmdbuf_endp - cmdbuf_ptr));
D_VT(("\n%s\n\n", safe_print_string(cmdbuf_ptr - 1, cmdbuf_endp - cmdbuf_ptr + 1)));
@@ -3489,18 +3492,59 @@ main_loop(void)
}
#endif
if (ch >= ' ' || ch == '\t' || ch == '\r') {
- /* nothing */
+ NOP;
} else if (ch == '\n') {
nlines++;
if (++refresh_count >= (refresh_limit * (TERM_WINDOW_GET_ROWS() - 1)))
break;
- } else { /* unprintable */
+ } else {
+ /* unprintable */
cmdbuf_ptr--;
break;
}
}
- D_SCREEN(("Adding %d lines (%d chars); str == %8p, cmdbuf_ptr == %8p, cmdbuf_endp == %8p\n", nlines, cmdbuf_ptr - str, str, cmdbuf_ptr, cmdbuf_endp));
- scr_add_lines(str, nlines, (cmdbuf_ptr - str));
+ D_SCREEN(("Adding %d lines (%d chars); str == %8p, cmdbuf_ptr == %8p, cmdbuf_endp == %8p\n",
+ nlines, cmdbuf_ptr - str, str, cmdbuf_ptr, cmdbuf_endp));
+#ifdef MULTI_CHARSET
+ if (!strcmp(nl_langinfo(CODESET), "UTF-8")) {
+ iconv_t handle;
+
+ handle = iconv_open("UTF-8", "UCS2");
+ if (handle == SPIF_CAST_C(iconv_t) -1) {
+ print_error("Unable to decode UTF-8 locale %s to UCS-2. Defaulting to portable C locale.\n",
+ setlocale(LC_ALL, ""));
+ setlocale(LC_ALL, "C");
+ } else {
+ char *outbuff, *pinbuff, *poutbuff;
+ size_t bufflen, outlen = 0, retval;
+
+ pinbuff = (char *) str;
+ bufflen = cmdbuf_ptr - str;
+ poutbuff = outbuff = SPIF_CAST_C(char *) MALLOC(bufflen * 6);
+ errno = 0;
+ retval = iconv(handle, &pinbuff, &bufflen, &poutbuff, &outlen);
+ if (retval != (size_t) -1) {
+ errno = 0;
+ }
+ if (errno == E2BIG) {
+ print_error("My UTF-8 decode buffer was too small by %lu bytes?!", bufflen);
+ } else if (errno == EILSEQ) {
+ print_error("Illegal multibyte sequence encountered at \'%c\' (0x%02x); skipping.\n",
+ *pinbuff, *pinbuff);
+ *pinbuff = ' ';
+ pinbuff++;
+ } else if (errno == EINVAL) {
+ D_VT(("Incomplete multibyte sequence encountered.\n"));
+ }
+
+ if (pinbuff > (char *) str) {
+ cmdbuf_ptr = (unsigned char *) pinbuff;
+ scr_add_lines(str, nlines, (cmdbuf_ptr - str));
+ }
+ }
+ } else
+#endif
+ scr_add_lines(str, nlines, (cmdbuf_ptr - str));
} else {
switch (ch) {
# ifdef NO_ENQ_ANS
diff --git a/src/feature.h b/src/feature.h
index 193841f..6259c38 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -202,7 +202,7 @@
#define META8_OPTION
/* Attempt to deactivate UTF-8 and similar locales. */
-#define NO_UTF8_LOCALE
+/* #define NO_UTF8_LOCALE */
/********************* Miscellaneous options *********************/
diff --git a/src/options.c b/src/options.c
index a6c85c2..6f066a3 100644
--- a/src/options.c
+++ b/src/options.c
@@ -150,6 +150,7 @@ int rs_delay = -1;
unsigned char rs_es_dock = BBAR_DOCKED_BOTTOM;
char *rs_es_font = NULL;
#endif
+spif_uint32_t rs_opacity = 0xffffffff;
unsigned int rs_line_space = 0;
unsigned int rs_meta_mod = 0, rs_alt_mod = 0, rs_numlock_mod = 0;
#ifdef KEYSYM_ATTRIBUTE
@@ -245,6 +246,7 @@ spifopt_t option_list[] = {
SPIFOPT_STR_LONG("trough-pixmap", "scrollbar background (trough) pixmap", rs_pixmaps[image_sb]),
SPIFOPT_STR_LONG("anchor-pixmap", "scrollbar anchor pixmap", rs_pixmaps[image_sa]),
SPIFOPT_STR_LONG("menu-pixmap", "menu pixmap", rs_pixmaps[image_menu]),
+ SPIFOPT_INT('o', "opacity", "window opacity (0-255; requires X COMPOSITE extension)", rs_opacity),
SPIFOPT_BOOL('O', "trans", "creates a pseudo-transparent Eterm", image_options, IMAGE_OPTIONS_TRANS),
SPIFOPT_BOOL('0', "itrans", "use immotile-optimized transparency", image_options, IMAGE_OPTIONS_ITRANS),
SPIFOPT_BOOL_LONG("viewport-mode", "use viewport mode for the background image", image_options, IMAGE_OPTIONS_VIEWPORT),
@@ -2962,6 +2964,12 @@ post_parse(void)
}
#endif
+ if (rs_opacity < 0x100) {
+ rs_opacity |= (rs_opacity << 24) | (rs_opacity << 16) | (rs_opacity << 8);
+ } else {
+ rs_opacity = 0xffffffff;
+ }
+
if (BITFIELD_IS_SET(vt_options, VT_OPTIONS_REVERSE_VIDEO)) {
char *tmp;
diff --git a/src/options.h b/src/options.h
index 47777c9..e830a3b 100644
--- a/src/options.h
+++ b/src/options.h
@@ -125,6 +125,7 @@ extern int rs_delay;
extern unsigned char rs_es_dock;
extern char *rs_es_font;
#endif
+extern spif_uint32_t rs_opacity;
extern unsigned int rs_line_space;
extern unsigned int rs_meta_mod, rs_alt_mod, rs_numlock_mod;
#ifndef NO_BOLDFONT
diff --git a/src/screen.c b/src/screen.c
index 5062f49..1f63b7d 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -183,7 +183,8 @@ scr_reset(void)
buf_rend = CALLOC(rend_t *, total_rows);
drawn_rend = CALLOC(rend_t *, TERM_WINDOW_GET_REPORTED_ROWS());
swap.rend = CALLOC(rend_t *, TERM_WINDOW_GET_REPORTED_ROWS());
- D_SCREEN(("screen.text == %8p, screen.rend == %8p, swap.text == %8p, swap.rend == %8p\n", screen.text, screen.rend, swap.text, swap.rend));
+ D_SCREEN(("screen.text == %8p, screen.rend == %8p, swap.text == %8p, swap.rend == %8p\n",
+ screen.text, screen.rend, swap.text, swap.rend));
for (i = 0; i < TERM_WINDOW_GET_REPORTED_ROWS(); i++) {
j = i + TermWin.saveLines;
@@ -226,7 +227,8 @@ scr_reset(void)
buf_rend = REALLOC(buf_rend, total_rows * sizeof(rend_t *));
drawn_rend = REALLOC(drawn_rend, TERM_WINDOW_GET_REPORTED_ROWS() * sizeof(rend_t *));
swap.rend = REALLOC(swap.rend, TERM_WINDOW_GET_REPORTED_ROWS() * sizeof(rend_t *));
- D_SCREEN(("screen.text == %8p, screen.rend == %8p, swap.text == %8p, swap.rend == %8p\n", screen.text, screen.rend, swap.text, swap.rend));
+ D_SCREEN(("screen.text == %8p, screen.rend == %8p, swap.text == %8p, swap.rend == %8p\n",
+ screen.text, screen.rend, swap.text, swap.rend));
/* we have fewer rows so fix up number of scrolled lines */
UPPER_BOUND(screen.row, TERM_WINDOW_GET_REPORTED_ROWS() - 1);
@@ -242,7 +244,8 @@ scr_reset(void)
buf_rend = REALLOC(buf_rend, total_rows * sizeof(rend_t *));
drawn_rend = REALLOC(drawn_rend, TERM_WINDOW_GET_REPORTED_ROWS() * sizeof(rend_t *));
swap.rend = REALLOC(swap.rend, TERM_WINDOW_GET_REPORTED_ROWS() * sizeof(rend_t *));
- D_SCREEN(("screen.text == %8p, screen.rend == %8p, swap.text == %8p, swap.rend == %8p\n", screen.text, screen.rend, swap.text, swap.rend));
+ D_SCREEN(("screen.text == %8p, screen.rend == %8p, swap.text == %8p, swap.rend == %8p\n",
+ screen.text, screen.rend, swap.text, swap.rend));
k = MIN(TermWin.nscrolled, TERM_WINDOW_GET_REPORTED_ROWS() - prev_nrow);
for (i = prev_total_rows; i < total_rows - k; i++) {
@@ -279,7 +282,8 @@ scr_reset(void)
screen.rend[i] = REALLOC(screen.rend[i], TERM_WINDOW_GET_REPORTED_COLS() * sizeof(rend_t));
screen.text[i][TERM_WINDOW_GET_REPORTED_COLS()] = MIN(tc, TERM_WINDOW_GET_REPORTED_COLS());
if (TERM_WINDOW_GET_REPORTED_COLS() > prev_ncol)
- blank_line(&(screen.text[i][prev_ncol]), &(screen.rend[i][prev_ncol]), TERM_WINDOW_GET_REPORTED_COLS() - prev_ncol, DEFAULT_RSTYLE);
+ blank_line(&(screen.text[i][prev_ncol]), &(screen.rend[i][prev_ncol]),
+ TERM_WINDOW_GET_REPORTED_COLS() - prev_ncol, DEFAULT_RSTYLE);
}
}
for (i = 0; i < TERM_WINDOW_GET_REPORTED_ROWS(); i++) {
@@ -291,10 +295,12 @@ scr_reset(void)
swap.rend[i] = REALLOC(swap.rend[i], TERM_WINDOW_GET_REPORTED_COLS() * sizeof(rend_t));
swap.text[i][TERM_WINDOW_GET_REPORTED_COLS()] = MIN(tc, TERM_WINDOW_GET_REPORTED_COLS());
if (TERM_WINDOW_GET_REPORTED_COLS() > prev_ncol)
- blank_line(&(swap.text[i][prev_ncol]), &(swap.rend[i][prev_ncol]), TERM_WINDOW_GET_REPORTED_COLS() - prev_ncol, DEFAULT_RSTYLE);
+ blank_line(&(swap.text[i][prev_ncol]), &(swap.rend[i][prev_ncol]),
+ TERM_WINDOW_GET_REPORTED_COLS() - prev_ncol, DEFAULT_RSTYLE);
}
if (TERM_WINDOW_GET_REPORTED_COLS() > prev_ncol)
- blank_line(&(drawn_text[i][prev_ncol]), &(drawn_rend[i][prev_ncol]), TERM_WINDOW_GET_REPORTED_COLS() - prev_ncol, DEFAULT_RSTYLE);
+ blank_line(&(drawn_text[i][prev_ncol]), &(drawn_rend[i][prev_ncol]),
+ TERM_WINDOW_GET_REPORTED_COLS() - prev_ncol, DEFAULT_RSTYLE);
}
}
if (tabs)
diff --git a/src/startup.c b/src/startup.c
index 1cfeec6..ce3031d 100644
--- a/src/startup.c
+++ b/src/startup.c
@@ -150,6 +150,7 @@ eterm_bootstrap(int argc, char *argv[])
props[PROP_DND_PROTOCOL] = XInternAtom(Xdisplay, "DndProtocol", False);
props[PROP_DND_SELECTION] = XInternAtom(Xdisplay, "DndSelection", False);
props[PROP_EWMH_ICON] = XInternAtom(Xdisplay, "_NET_WM_ICON", False);
+ props[PROP_EWMH_OPACITY] = XInternAtom(Xdisplay, "_NET_WM_WINDOW_OPACITY", True);
if ((theme_dir = conf_parse_theme(&rs_theme, THEME_CFG, PARSE_TRY_ALL)) != NULL) {
char *tmp;
diff --git a/src/startup.h b/src/startup.h
index 8a8b500..9358ae8 100644
--- a/src/startup.h
+++ b/src/startup.h
@@ -103,6 +103,7 @@ enum {
PROP_DND_PROTOCOL,
PROP_DND_SELECTION,
PROP_EWMH_ICON,
+ PROP_EWMH_OPACITY,
NUM_PROPS
};
diff --git a/src/term.c b/src/term.c
index a3f4672..3e5c8d4 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2017,7 +2017,8 @@ xterm_seq(int op, const char *str)
if ((valptr = (char *) strsep(&tnstr, ";")) == NULL) {
break;
}
- D_CMD(("Modifying the %s attribute of the %s color modifier of the %s image to be %s\n", mod, color, get_image_type(which), valptr));
+ D_CMD(("Modifying the %s attribute of the %s color modifier of the %s image to be %s\n",
+ mod, color, get_image_type(which), valptr));
changed = 1;
# ifdef PIXMAP_OFFSET
if (image_mode_is(which, MODE_TRANS) && (desktop_pixmap != None)) {
@@ -2365,30 +2366,37 @@ xterm_seq(int op, const char *str)
xev.message_type = props[PROP_DESKTOP];
xev.format = 32;
xev.data.l[0] = rs_desktop;
- XChangeProperty(Xdisplay, TermWin.parent, xev.message_type, XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &rs_desktop, 1);
+ XChangeProperty(Xdisplay, TermWin.parent, xev.message_type, XA_CARDINAL, 32,
+ PropModeReplace, (unsigned char *) &rs_desktop, 1);
XSendEvent(Xdisplay, Xroot, False, SubstructureNotifyMask, (XEvent *) & xev);
}
break;
-#if 0
- case 70:
- /* Exit Eterm */
- exit(0);
- break;
- case 71:
- /* Save current config */
+ case 51:
+ /* Change opacity */
nstr = (char *) strsep(&tnstr, ";");
if (nstr && *nstr) {
- valptr = (char *) strsep(&tnstr, ";");
- if (!strcasecmp(nstr, "theme")) {
- save_config(valptr, SAVE_THEME_CONFIG);
+ XClientMessageEvent xev;
+ spif_uint32_t tmp;
+
+ tmp = (int) strtol(nstr, (char **) NULL, 0);
+ if (tmp < 0x100) {
+ rs_opacity = tmp | (tmp << 24) | (tmp << 16) | (tmp << 8);
} else {
- save_config(valptr, SAVE_USER_CONFIG);
+ rs_opacity = 0xffffffff;
}
- } else {
- save_config(NULL, SAVE_USER_CONFIG);
+ xev.type = ClientMessage;
+ xev.window = TermWin.parent;
+ xev.message_type = props[PROP_EWMH_OPACITY];
+ xev.format = 32;
+ xev.data.l[0] = rs_opacity;
+ XChangeProperty(Xdisplay, TermWin.parent, xev.message_type, XA_CARDINAL, 32,
+ PropModeReplace, (unsigned char *) &rs_opacity, 1);
+ XChangeProperty(Xdisplay, TermWin.vt, xev.message_type, XA_CARDINAL, 32,
+ PropModeReplace, (unsigned char *) &rs_opacity, 1);
+ XSendEvent(Xdisplay, Xroot, False, SubstructureNotifyMask, (XEvent *) (&xev));
}
break;
-#endif
+
case 72:
/* Search scrollback buffer for a string. NULL to clear. */
nstr = (char *) strsep(&tnstr, ";");
@@ -2398,15 +2406,7 @@ xterm_seq(int op, const char *str)
scr_search_scrollback(NULL);
}
break;
-#if 0
- case 73:
- /* Spawn a subprogram */
- nstr = (char *) strsep(&tnstr, ";");
- if (nstr && *nstr) {
- system_no_wait(nstr);
- }
- break;
-#endif
+
case 80:
/* Set debugging level */
nstr = (char *) strsep(&tnstr, ";");
diff --git a/src/windows.c b/src/windows.c
index 3807520..927bc90 100644
--- a/src/windows.c
+++ b/src/windows.c
@@ -380,7 +380,8 @@ Create_Windows(int argc, char *argv[])
}
Attributes.colormap = cmap;
- szHint.base_width = (2 * TermWin.internalBorder + ((BITFIELD_IS_SET(eterm_options, ETERM_OPTIONS_SCROLLBAR)) ? (scrollbar_get_width() + (2 * scrollbar_get_shadow())) : 0));
+ szHint.base_width = (2 * TermWin.internalBorder + ((BITFIELD_IS_SET(eterm_options, ETERM_OPTIONS_SCROLLBAR))
+ ? (scrollbar_get_width() + (2 * scrollbar_get_shadow())) : 0));
szHint.base_height = (2 * TermWin.internalBorder) + bbar_calc_docked_height(BBAR_DOCKED);
flags = (rs_geometry ? XParseGeometry(rs_geometry, &x, &y, &width, &height) : 0);
@@ -447,8 +448,10 @@ Create_Windows(int argc, char *argv[])
XSelectInput(Xdisplay, TermWin.parent, (KeyPressMask | FocusChangeMask | StructureNotifyMask | VisibilityChangeMask | PropertyChangeMask));
if (mwmhints.flags) {
prop = XInternAtom(Xdisplay, "_MOTIF_WM_HINTS", False);
- XChangeProperty(Xdisplay, TermWin.parent, prop, prop, 32, PropModeReplace, (unsigned char *) &mwmhints, PROP_MWM_HINTS_ELEMENTS);
+ XChangeProperty(Xdisplay, TermWin.parent, prop, prop, 32,
+ PropModeReplace, (unsigned char *) &mwmhints, PROP_MWM_HINTS_ELEMENTS);
}
+
/* vt cursor: Black-on-White is standard, but this is more popular */
TermWin_cursor = XCreateFontCursor(Xdisplay, XC_xterm);
set_pointer_colors(NULL, NULL);
@@ -457,9 +460,12 @@ Create_Windows(int argc, char *argv[])
cursor = XCreateFontCursor(Xdisplay, XC_left_ptr);
/* the vt window */
- TermWin.x = (((BITFIELD_IS_SET(eterm_options, ETERM_OPTIONS_SCROLLBAR)) && !(BITFIELD_IS_SET(eterm_options, ETERM_OPTIONS_SCROLLBAR_RIGHT))) ? (scrollbar_get_width() + (2 * scrollbar_get_shadow())) : 0);
+ TermWin.x = (((BITFIELD_IS_SET(eterm_options, ETERM_OPTIONS_SCROLLBAR))
+ && !(BITFIELD_IS_SET(eterm_options, ETERM_OPTIONS_SCROLLBAR_RIGHT)))
+ ? (scrollbar_get_width() + (2 * scrollbar_get_shadow())) : 0);
TermWin.y = bbar_calc_docked_height(BBAR_DOCKED_TOP);
- TermWin.vt = XCreateWindow(Xdisplay, TermWin.parent, TermWin.x, TermWin.y, szHint.width, szHint.height, 0, Xdepth, InputOutput, CopyFromParent,
+ TermWin.vt = XCreateWindow(Xdisplay, TermWin.parent, TermWin.x, TermWin.y, szHint.width, szHint.height,
+ 0, Xdepth, InputOutput, CopyFromParent,
CWBackPixel | CWBorderPixel | CWOverrideRedirect | CWColormap, &Attributes);
D_X11(("Created terminal window 0x%08x at %dx%d\n", TermWin.vt, TermWin.x, TermWin.y));
if (!(background_is_pixmap()) && !(BITFIELD_IS_SET(eterm_options, ETERM_OPTIONS_BORDERLESS))) {
@@ -475,7 +481,16 @@ Create_Windows(int argc, char *argv[])
/* If the user wants a specific desktop, tell the WM that */
if (rs_desktop != -1) {
val = rs_desktop;
- XChangeProperty(Xdisplay, TermWin.parent, props[PROP_DESKTOP], XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &val, 1);
+ XChangeProperty(Xdisplay, TermWin.parent, props[PROP_DESKTOP],
+ XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &val, 1);
+ }
+
+ /* Set window opacity if needed. */
+ if ((props[PROP_EWMH_OPACITY] != None) && (rs_opacity != 0xff)) {
+ XChangeProperty(Xdisplay, TermWin.parent, props[PROP_EWMH_OPACITY],
+ XA_CARDINAL, 32, PropModeReplace, SPIF_CAST_PTR(uchar) &rs_opacity, 1);
+ XChangeProperty(Xdisplay, TermWin.vt, props[PROP_EWMH_OPACITY],
+ XA_CARDINAL, 32, PropModeReplace, SPIF_CAST_PTR(uchar) &rs_opacity, 1);
}
/* We're done creating our windows. Now let's initialize the event subsystem to handle them. */