--- rxvt-unicode/src/main.C 2004/11/21 19:04:07 1.116 +++ rxvt-unicode/src/main.C 2004/12/13 01:29:03 1.119 @@ -261,9 +261,7 @@ free (env_term); free (env_colorfgbg); free (locale); -#if 0 - free (codeset); -#endif + free (incr_buf); delete envv; delete argv; @@ -357,7 +355,7 @@ scr_reset (); /* initialize screen */ -#if 1 +#if 0 XSynchronize (display->display, True); #endif @@ -833,44 +831,46 @@ return true; } +void rxvt_term::set_string_property (Atom prop, const char *str, int len) +{ + // TODO: SMART_WINDOW_TITLE + XChangeProperty (display->display, TermWin.parent[0], + prop, XA_STRING, 8, PropModeReplace, + (const unsigned char *)str, len >= 0 ? len : strlen (str)); +} + +void rxvt_term::set_utf8_property (Atom prop, const char *str, int len) +{ + // TODO: SMART_WINDOW_TITLE + wchar_t *ws = rxvt_mbstowcs (str, len); + char *s = rxvt_wcstoutf8 (ws); + + XChangeProperty (display->display, TermWin.parent[0], + prop, xa[XA_UTF8_STRING], 8, PropModeReplace, + (const unsigned char *)s, strlen (s)); + + free (s); + free (ws); +} + /*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/ /* xterm sequences - title, iconName, color (exptl) */ void rxvt_term::set_title (const char *str) { -#ifdef SMART_WINDOW_TITLE - char *name; - - if (!XFetchName (display->display, TermWin.parent[0], &name)) - name = NULL; - - if (name == NULL || strcmp (name, str)) -#endif - XStoreName (display->display, TermWin.parent[0], str); - -#ifdef SMART_WINDOW_TITLE - if (name) - XFree (name); + set_string_property (XA_WM_NAME, str); +#if ENABLE_FRILLS + set_utf8_property (display->atom ("_NET_WM_NAME"), str); #endif } void rxvt_term::set_icon_name (const char *str) { -#ifdef SMART_WINDOW_TITLE - char *name; - - if (!XGetIconName (display->display, TermWin.parent[0], &name)) - name = NULL; - - if (name == NULL || strcmp (name, str)) -#endif - XSetIconName (display->display, TermWin.parent[0], str); - -#ifdef SMART_WINDOW_TITLE - if (name) - XFree (name); + set_string_property (XA_WM_ICON_NAME, str); +#if ENABLE_FRILLS + set_utf8_property (display->atom ("_NET_WM_ICON_NAME"), str); #endif }