From: root Date: Wed, 15 Dec 2004 00:12:58 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: http://git.openbox.org/?p=dana%2Furxvt.git;a=commitdiff_plain;h=10b5e5e5d526e95536197a3e67da7b68d2c54a12 *** empty log message *** --- diff --git a/Changes b/Changes index db33f6e..a9d7e3a 100644 --- a/Changes +++ b/Changes @@ -2,6 +2,7 @@ Lines marked with "xterm:" indicate either xterm features ported to rxvt or changed rxvt behaviour to make it more compatible to xterm (usually xfree86's xterm). +TODO: configurable underline line colour. TODO: read property sequence is broken with respect to utf-8 etc. FEAT: hotkey font resizing FEAT: searchable backlog @@ -14,6 +15,8 @@ FEAT: tabbed windows (hey, just use screen...) - try very hard not to exhaust the kernel tty buffers, even if it slows down large pastes and is only cosmetic. - fix an unlikely memory leak. + - fix atom name enumeration. + - streamline atom allocation to reduce network latency slightly. 4.5 Mon Dec 13 07:47:16 CET 2004 - fix an extremely nasty bug in utf8-conversion. upgrade is advised. diff --git a/src/init.C b/src/init.C index 0fa56df..99c5fa7 100644 --- a/src/init.C +++ b/src/init.C @@ -169,7 +169,7 @@ const char *const def_colorName[] = #endif }; -const char *const xa_names[NUM_XA] = +const char *const xa_names[] = { "TEXT", "COMPOUND_TEXT", @@ -180,14 +180,24 @@ const char *const xa_names[NUM_XA] = "VT_SELECTION", "INCR", "WM_DELETE_WINDOW", + "CLIPBOARD", +#if ENABLE_FRILLS + "_NET_WM_PID", + "_MOTIF_WM_HINTS", + "_NET_WM_NAME", + "_NET_WM_ICON_NAME", +#endif +#if USE_XIM + "WM_LOCALE_NAME", +#endif #ifdef TRANSPARENT "_XROOTPMAP_ID", + "_XSETROOT_ID", #endif #ifdef OFFIX_DND "DndProtocol", "DndSelection", #endif - "CLIPBOARD" }; bool @@ -613,7 +623,7 @@ rxvt_term::init_xlocale () rxvt_warn ("setting locale failed, working without locale support.\n"); else { - set_string_property (display->atom ("WM_LOCALE_NAME"), locale); + set_string_property (xa[XA_WM_LOCALE_NAME], locale); if (!XSupportsLocale ()) { @@ -898,14 +908,14 @@ rxvt_term::create_windows (int argc, const char *const *argv) XSetWindowAttributes attributes; XWindowAttributes gattr; - for (int i = 0; i < NUM_XA; i++) - xa[i] = XInternAtom (display->display, xa_names[i], False); - #ifdef USING_W11LIB /* enable W11 callbacks */ W11AddEventHandler (display->display, rxvt_W11_process_x_event); #endif + assert (sizeof (xa_names) / sizeof (char *) == NUM_XA); + XInternAtoms (display->display, (char **)xa_names, NUM_XA, False, xa); + if (options & Opt_transparent) { XGetWindowAttributes (display->display, RootWindow (display->display, display->screen), &gattr); @@ -991,7 +1001,7 @@ rxvt_term::create_windows (int argc, const char *const *argv) long pid = getpid (); XChangeProperty (display->display, TermWin.parent[0], - display->atom ("_NET_WM_PID"), XA_CARDINAL, 32, + xa[XA_NET_WM_PID], XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&pid, 1); #endif @@ -1007,11 +1017,8 @@ rxvt_term::create_windows (int argc, const char *const *argv) #if ENABLE_FRILLS if (mwmhints.flags) - { - prop = XInternAtom (display->display, "_MOTIF_WM_HINTS", False); - XChangeProperty (display->display, TermWin.parent[0], prop, prop, 32, - PropModeReplace, (unsigned char *)&mwmhints, PROP_MWM_HINTS_ELEMENTS); - } + XChangeProperty (display->display, TermWin.parent[0], xa[XA_MOTIF_WM_HINTS], xa[XA_MOTIF_WM_HINTS], 32, + PropModeReplace, (unsigned char *)&mwmhints, PROP_MWM_HINTS_ELEMENTS); #endif /* vt cursor: Black-on-White is standard, but this is more popular */ diff --git a/src/main.C b/src/main.C index a570ffe..db560df 100644 --- a/src/main.C +++ b/src/main.C @@ -862,7 +862,7 @@ rxvt_term::set_title (const char *str) { set_string_property (XA_WM_NAME, str); #if ENABLE_FRILLS - set_utf8_property (display->atom ("_NET_WM_NAME"), str); + set_utf8_property (xa[XA_NET_WM_NAME], str); #endif } @@ -871,7 +871,7 @@ rxvt_term::set_icon_name (const char *str) { set_string_property (XA_WM_ICON_NAME, str); #if ENABLE_FRILLS - set_utf8_property (display->atom ("_NET_WM_ICON_NAME"), str); + set_utf8_property (xa[XA_NET_WM_ICON_NAME], str); #endif } diff --git a/src/rxvt.h b/src/rxvt.h index 525ee3f..20584e9 100644 --- a/src/rxvt.h +++ b/src/rxvt.h @@ -640,15 +640,24 @@ enum { XA_VT_SELECTION, XA_INCR, XA_WMDELETEWINDOW, -#ifdef TRANSPARENT + XA_CLIPBOARD, +#if ENABLE_FRILLS + XA_NET_WM_PID, + XA_MOTIF_WM_HINTS, + XA_NET_WM_NAME, + XA_NET_WM_ICON_NAME, +#endif +#if USE_XIM + XA_WM_LOCALE_NAME, +#endif +#if TRANSPARENT XA_XROOTPMAPID, XA_XSETROOTID, #endif -#ifdef OFFIX_DND /* OffiX Dnd (drag 'n' drop) support */ +#if OFFIX_DND /* OffiX Dnd (drag 'n' drop) support */ XA_DNDPROTOCOL, XA_DNDSELECTION, #endif /* OFFIX_DND */ - XA_CLIPBOARD, NUM_XA }; diff --git a/src/version.h b/src/version.h index 8a12d8c..c8264f0 100644 --- a/src/version.h +++ b/src/version.h @@ -1,5 +1,5 @@ -#define VERSION "4.5" -#define VSTRING "40500" +#define VERSION "4.6" +#define VSTRING "40600" #define DATE "2004-12-13" #define LSMDATE "13DEC04" -#define LIBVERSION "4:5:0" +#define LIBVERSION "4:6:0"