--- rxvt-unicode/src/init.C 2014/10/06 11:11:19 1.338 +++ rxvt-unicode/src/init.C 2014/12/15 02:04:02 1.342 @@ -614,6 +614,8 @@ } #endif + // must be called after initialising the perl interpreter as it + // may invoke the `on_register_command' hook extract_keysym_resources (); /* @@ -1056,7 +1058,7 @@ /*----------------------------------------------------------------------*/ void -rxvt_term::get_colours () +rxvt_term::get_colors () { int i; @@ -1064,61 +1066,9 @@ pix_colors = pix_colors_focused; #endif - for (i = 0; i < (depth <= 2 ? 2 : NRS_COLORS); i++) - { - const char *name = rs[Rs_color + i]; - - if (!name) - continue; - - rxvt_color xcol; - - if (!set_color (xcol, name)) - { -#ifndef XTERM_REVERSE_VIDEO - if (i < 2 && option (Opt_reverseVideo)) - name = def_colorName [1 - i]; - else -#endif - name = def_colorName [i]; - - if (!name) - continue; - - if (!set_color (xcol, name)) - { - switch (i) - { - case Color_fg: - case Color_bg: - rxvt_warn ("unable to get foreground/background colour, continuing.\n"); - name = ""; - break; -#ifndef NO_CURSORCOLOR - case Color_cursor2: -#endif - case Color_pointer_fg: - name = rs[Rs_color + Color_fg]; - xcol.set (this, name); - break; - default: - name = rs[Rs_color + Color_bg]; - xcol.set (this, name); - break; - } - } - } - - pix_colors[i] = xcol; - rs[Rs_color + i] = name; - } - - if (depth <= 2) - { - if (!rs[Rs_color + Color_pointer_fg]) alias_color (Color_pointer_fg, Color_fg); - if (!rs[Rs_color + Color_pointer_bg]) alias_color (Color_pointer_bg, Color_bg); - if (!rs[Rs_color + Color_border] ) alias_color (Color_border, Color_fg); - } + for (i = 0; i < NRS_COLORS; i++) + if (const char *name = rs[Rs_color + i]) + set_color (pix_colors [i], name); /* * get scrollBar shadow colors @@ -1127,35 +1077,25 @@ * from the fvwm window manager. */ #ifdef RXVT_SCROLLBAR - if (depth <= 2) - { - /* Monochrome */ - alias_color (Color_scroll, Color_fg); - alias_color (Color_topShadow, Color_bg); - alias_color (Color_bottomShadow, Color_bg); - } - else - { - pix_colors [Color_scroll].fade (this, 50, pix_colors [Color_bottomShadow]); + pix_colors [Color_scroll].fade (this, 50, pix_colors [Color_bottomShadow]); - rgba cscroll; - pix_colors [Color_scroll].get (cscroll); + rgba cscroll; + pix_colors [Color_scroll].get (cscroll); - /* topShadowColor */ - if (!pix_colors[Color_topShadow].set (this, - rgba ( - min ((int)rgba::MAX_CC, max (cscroll.r / 5, cscroll.r) * 7 / 5), - min ((int)rgba::MAX_CC, max (cscroll.g / 5, cscroll.g) * 7 / 5), - min ((int)rgba::MAX_CC, max (cscroll.b / 5, cscroll.b) * 7 / 5), - cscroll.a) - )) - alias_color (Color_topShadow, Color_White); - } + /* topShadowColor */ + if (!pix_colors[Color_topShadow].set (this, + rgba ( + min ((int)rgba::MAX_CC, max (cscroll.r / 5, cscroll.r) * 7 / 5), + min ((int)rgba::MAX_CC, max (cscroll.g / 5, cscroll.g) * 7 / 5), + min ((int)rgba::MAX_CC, max (cscroll.b / 5, cscroll.b) * 7 / 5), + cscroll.a) + )) + alias_color (Color_topShadow, Color_White); #endif #ifdef OFF_FOCUS_FADING - for (i = 0; i < (depth <= 2 ? 2 : NRS_COLORS); i++) - update_fade_color (i); + for (i = 0; i < NRS_COLORS; i++) + update_fade_color (i, true); #endif } @@ -1344,7 +1284,7 @@ dLocal (Display *, dpy); /* grab colors before netscape does */ - get_colours (); + get_colors (); if (!set_fonts ()) rxvt_fatal ("unable to load base fontset, please specify a valid one using -fn, aborting.\n"); @@ -1507,7 +1447,7 @@ #endif pointer_unblank (); - scr_recolour (); + scr_recolor (); } /*----------------------------------------------------------------------*/