Enlightenment CVS committal Author : mej Project : eterm Module : Eterm
Dir : eterm/Eterm/src Modified Files: command.c feature.h options.c options.h screen.c startup.c startup.h term.c windows.c Log Message: 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. ---------------------------------------------------------------------- =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/src/command.c,v retrieving revision 1.100 retrieving revision 1.101 diff -u -3 -r1.100 -r1.101 --- command.c 11 Mar 2004 13:59:44 -0000 1.100 +++ command.c 14 Dec 2004 23:24:24 -0000 1.101 @@ -34,7 +34,7 @@ * he guarantee anything whatsoever. *----------------------------------------------------------------------*/ -static const char cvs_ident[] = "$Id: command.c,v 1.100 2004/03/11 13:59:44 mej Exp $"; +static const char cvs_ident[] = "$Id: command.c,v 1.101 2004/12/14 23:24:24 mej Exp $"; /* includes: */ #include "config.h" @@ -107,6 +107,11 @@ #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 @@ 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 @@ } #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 =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/src/feature.h,v retrieving revision 1.44 retrieving revision 1.45 diff -u -3 -r1.44 -r1.45 --- feature.h 23 Jul 2004 16:23:06 -0000 1.44 +++ feature.h 14 Dec 2004 23:24:27 -0000 1.45 @@ -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 *********************/ =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/src/options.c,v retrieving revision 1.133 retrieving revision 1.134 diff -u -3 -r1.133 -r1.134 --- options.c 20 Apr 2004 17:50:14 -0000 1.133 +++ options.c 14 Dec 2004 23:24:28 -0000 1.134 @@ -21,7 +21,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -static const char cvs_ident[] = "$Id: options.c,v 1.133 2004/04/20 17:50:14 mej Exp $"; +static const char cvs_ident[] = "$Id: options.c,v 1.134 2004/12/14 23:24:28 mej Exp $"; #include "config.h" #include "feature.h" @@ -150,6 +150,7 @@ 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_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 @@ } #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; =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/src/options.h,v retrieving revision 1.50 retrieving revision 1.51 diff -u -3 -r1.50 -r1.51 --- options.h 23 Jul 2004 16:28:25 -0000 1.50 +++ options.h 14 Dec 2004 23:24:30 -0000 1.51 @@ -125,6 +125,7 @@ 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 =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/src/screen.c,v retrieving revision 1.77 retrieving revision 1.78 diff -u -3 -r1.77 -r1.78 --- screen.c 20 Jan 2004 02:04:04 -0000 1.77 +++ screen.c 14 Dec 2004 23:24:30 -0000 1.78 @@ -3,7 +3,7 @@ * */ -static const char cvs_ident[] = "$Id: screen.c,v 1.77 2004/01/20 02:04:04 mej Exp $"; +static const char cvs_ident[] = "$Id: screen.c,v 1.78 2004/12/14 23:24:30 mej Exp $"; #include "config.h" #include "feature.h" @@ -183,7 +183,8 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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) =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/src/startup.c,v retrieving revision 1.48 retrieving revision 1.49 diff -u -3 -r1.48 -r1.49 --- startup.c 7 Nov 2004 20:38:20 -0000 1.48 +++ startup.c 14 Dec 2004 23:24:31 -0000 1.49 @@ -21,7 +21,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -static const char cvs_ident[] = "$Id: startup.c,v 1.48 2004/11/07 20:38:20 mej Exp $"; +static const char cvs_ident[] = "$Id: startup.c,v 1.49 2004/12/14 23:24:31 mej Exp $"; #include "config.h" #include "feature.h" @@ -150,6 +150,7 @@ 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; =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/src/startup.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- startup.h 11 Jan 2004 22:10:29 -0000 1.19 +++ startup.h 14 Dec 2004 23:24:32 -0000 1.20 @@ -103,6 +103,7 @@ PROP_DND_PROTOCOL, PROP_DND_SELECTION, PROP_EWMH_ICON, + PROP_EWMH_OPACITY, NUM_PROPS }; =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/src/term.c,v retrieving revision 1.104 retrieving revision 1.105 diff -u -3 -r1.104 -r1.105 --- term.c 14 Jul 2004 20:18:30 -0000 1.104 +++ term.c 14 Dec 2004 23:24:32 -0000 1.105 @@ -21,7 +21,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -static const char cvs_ident[] = "$Id: term.c,v 1.104 2004/07/14 20:18:30 mej Exp $"; +static const char cvs_ident[] = "$Id: term.c,v 1.105 2004/12/14 23:24:32 mej Exp $"; #include "config.h" #include "feature.h" @@ -2017,7 +2017,8 @@ 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 @@ 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 @@ 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, ";"); =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/src/windows.c,v retrieving revision 1.67 retrieving revision 1.68 diff -u -3 -r1.67 -r1.68 --- windows.c 25 Jun 2004 21:52:00 -0000 1.67 +++ windows.c 14 Dec 2004 23:24:33 -0000 1.68 @@ -21,7 +21,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -static const char cvs_ident[] = "$Id: windows.c,v 1.67 2004/06/25 21:52:00 mej Exp $"; +static const char cvs_ident[] = "$Id: windows.c,v 1.68 2004/12/14 23:24:33 mej Exp $"; #include "config.h" #include "feature.h" @@ -380,7 +380,8 @@ } 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 @@ 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 @@ 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 @@ /* 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. */ ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs