--- rxvt-unicode/src/init.C 2004/04/02 15:15:25 1.49 +++ rxvt-unicode/src/init.C 2004/06/21 22:24:07 1.57 @@ -1,5 +1,5 @@ /*--------------------------------*-C-*---------------------------------* - * File: init.c + * File: init.C *----------------------------------------------------------------------* * * All portions of code are copyright by their respective author/s. @@ -326,14 +326,13 @@ #ifdef OPTION_HC NULL, #endif -#if TINTING - NULL, -#endif #ifdef KEEP_SCROLLCOLOR COLOR_SCROLLBAR, COLOR_SCROLLTROUGH, #endif /* KEEP_SCROLLCOLOR */ - +#if TINTING + NULL, +#endif }; const char *const xa_names[NUM_XA] = @@ -755,7 +754,16 @@ { #if HAVE_XSETLOCALE || HAVE_SETLOCALE free (this->locale); - this->locale = rxvt_strdup (setlocale (LC_CTYPE, locale)); + this->locale = setlocale (LC_CTYPE, locale); + + if (!this->locale) + { + rxvt_warn ("unable to set locale \"%s\", using default locale instead.\n", locale); + setlocale (LC_CTYPE, ""); + this->locale = ""; + } + + this->locale = rxvt_strdup (this->locale); SET_LOCALE (this->locale); mbstate.reset (); #endif @@ -828,11 +836,11 @@ get_ourmods (); - if (! (Options & Opt_scrollTtyOutput)) + if (!(Options & Opt_scrollTtyOutput)) PrivateModes |= PrivMode_TtyOutputInh; if (Options & Opt_scrollTtyKeypress) PrivateModes |= PrivMode_Keypress; - if (! (Options & Opt_jumpScroll)) + if (!(Options & Opt_jumpScroll)) PrivateModes |= PrivMode_smoothScroll; #ifndef NO_BACKSPACE_KEY @@ -932,13 +940,13 @@ if (XDEPTH <= 2) { /* Monochrome */ - PixColors[Color_scroll] = PixColors[Color_fg]; - PixColors[Color_topShadow] = PixColors[Color_bg]; + PixColors[Color_scroll] = PixColors[Color_fg]; + PixColors[Color_topShadow] = PixColors[Color_bg]; PixColors[Color_bottomShadow] = PixColors[Color_bg]; } else { - rxvt_color xcol[3]; + rxvt_color xcol[3]; /* xcol[0] == white * xcol[1] == top shadow * xcol[2] == bot shadow */ @@ -1074,11 +1082,11 @@ void rxvt_term::create_windows (int argc, const char *const *argv) { - XClassHint classHint; - XWMHints wmHint; - XGCValues gcvalue; - long vt_emask; - + XClassHint classHint; + XWMHints wmHint; + XGCValues gcvalue; + long vt_emask; + XSetWindowAttributes attributes; XWindowAttributes gattr; if (Options & Opt_transparent) @@ -1101,14 +1109,10 @@ old_width = szHint.width; old_height = szHint.height; - /* parent window - reverse video so we can see placement errors - * sub-window placement & size in rxvt_resize_subwindows () - */ + /* sub-window placement & size in rxvt_resize_subwindows () */ #ifdef PREFER_24BIT - XSetWindowAttributes attributes; - - attributes.background_pixel = PixColors[Color_fg]; + attributes.background_pixel = PixColors[Color_bg]; attributes.border_pixel = PixColors[Color_border]; attributes.colormap = display->cmap; TermWin.parent[0] = XCreateWindow (display->display, DefaultRootWindow (display->display), @@ -1117,15 +1121,14 @@ TermWin.ext_bwidth, display->depth, InputOutput, display->visual, - CWBackPixel | CWBorderPixel | CWColormap, &attributes); + CWColormap | CWBackPixel | CWBorderPixel, &attributes); #else TermWin.parent[0] = XCreateSimpleWindow (display->display, DefaultRootWindow (display->display), - szHint.x, szHint.y, - szHint.width, - szHint.height, - TermWin.ext_bwidth, - PixColors[Color_border], - PixColors[Color_fg]); + szHint.x, szHint.y, + szHint.width, szHint.height, + TermWin.ext_bwidth, + PixColors[Color_border], + PixColors[Color_bg]); #endif process_xterm_seq (XTerm_title, rs[Rs_title], CHAR_ST); @@ -1134,10 +1137,9 @@ classHint.res_name = (char *)rs[Rs_name]; classHint.res_class = (char *)RESCLASS; - wmHint.flags = (InputHint | StateHint | WindowGroupHint); + wmHint.flags = InputHint | StateHint | WindowGroupHint; wmHint.input = True; - wmHint.initial_state = (Options & Opt_iconic ? IconicState - : NormalState); + wmHint.initial_state = Options & Opt_iconic ? IconicState : NormalState; wmHint.window_group = TermWin.parent[0]; XSetWMProperties (display->display, TermWin.parent[0], NULL, NULL, @@ -1182,7 +1184,8 @@ /* the vt window */ TermWin.vt = XCreateSimpleWindow (display->display, TermWin.parent[0], - window_vt_x, window_vt_y, + window_vt_x, + window_vt_y, TermWin_TotalWidth (), TermWin_TotalHeight (), 0, @@ -1193,17 +1196,19 @@ XStoreName (display->display, TermWin.vt, "vt window"); #endif - vt_emask = (ExposureMask | ButtonPressMask | ButtonReleaseMask - | PropertyChangeMask); + attributes.bit_gravity = NorthWestGravity; + XChangeWindowAttributes (display->display, TermWin.vt, CWBitGravity, &attributes); + + vt_emask = ExposureMask | ButtonPressMask | ButtonReleaseMask | PropertyChangeMask; #ifdef POINTER_BLANK pointer_unblank (); - if ((Options & Opt_pointerBlank)) + if (Options & Opt_pointerBlank) vt_emask |= PointerMotionMask; else #endif - vt_emask |= (Button1MotionMask | Button3MotionMask); + vt_emask |= Button1MotionMask | Button3MotionMask; XSelectInput (display->display, TermWin.vt, vt_emask); vt_ev.start (display, TermWin.vt);