--- rxvt-unicode/src/main.C 2012/01/19 13:33:43 1.369 +++ rxvt-unicode/src/main.C 2012/06/05 11:00:40 1.377 @@ -48,9 +48,7 @@ # define X_LOCALE # include #else -# ifdef HAVE_SETLOCALE -# include -# endif +# include #endif struct termios rxvt_term::def_tio; @@ -176,7 +174,7 @@ rootwin_ev.set (this), #endif scrollbar_ev.set (this), -#ifdef USE_XIM +#if USE_XIM im_ev.set (this), #endif #ifdef POINTER_BLANK @@ -235,7 +233,7 @@ selection_clear (); selection_clear (true); -#ifdef USE_XIM +#if USE_XIM im_destroy (); #endif scrollBar.destroy (); @@ -378,7 +376,7 @@ } #if !ENABLE_MINIMAL -static void +static void ecb_cold print_x_error (Display *dpy, XErrorEvent *event) { char buffer[BUFSIZ]; @@ -426,7 +424,7 @@ } #endif -int +int ecb_cold rxvt_xerror_handler (Display *display, XErrorEvent *event) { if (GET_R->allowedxerror == -1) @@ -445,7 +443,7 @@ return 0; } -int +int ecb_cold rxvt_xioerror_handler (Display *display) { rxvt_warn ("X connection to '%s' broken, unable to recover, exiting.\n", @@ -575,6 +573,10 @@ XSetIOErrorHandler (rxvt_xioerror_handler); XrmInitialize (); + +#if HAVE_PIXBUF + g_type_init (); +#endif } /*----------------------------------------------------------------------*/ @@ -768,13 +770,12 @@ fontset[0] = fs; prop = (*fs)[rxvt_fontset::firstFont]->properties (); - prop.height += lineSpace; prop.width += letterSpace; fs->set_prop (prop, false); fwidth = prop.width; - fheight = prop.height; + fheight = prop.height + lineSpace; fbase = prop.ascent; for (int style = 1; style < 4; style++) @@ -966,7 +967,7 @@ if (pix_colors[Color_bg] == pix_colors[i]) { sprintf (bstr, "%d", i - Color_Black); -#ifdef BG_IMAGE_FROM_FILE +#if BG_IMAGE_FROM_FILE xpmb = "default;"; #endif break; @@ -1079,6 +1080,8 @@ window_vt_x, window_vt_y, vt_width, vt_height); + HOOK_INVOKE ((this, HOOK_SIZE_CHANGE, DT_INT, newwidth, DT_INT, newheight, DT_END)); + #ifdef HAVE_BG_PIXMAP if (bg_window_size_sensitive ()) update_background (); @@ -1088,7 +1091,7 @@ if (fix_screen || old_height == 0) scr_reset (); -#ifdef USE_XIM +#if USE_XIM im_set_position (); #endif } @@ -1123,7 +1126,7 @@ /* -------------------------------------------------------------------- * * - X INPUT METHOD ROUTINES - * * -------------------------------------------------------------------- */ -#ifdef USE_XIM +#if USE_XIM void rxvt_term::im_set_color (unsigned long &fg, unsigned long &bg) @@ -1530,10 +1533,8 @@ if (Input_Context) return; -#if defined(HAVE_XSETLOCALE) || defined(HAVE_SETLOCALE) if (rs[Rs_imLocale]) SET_LOCALE (rs[Rs_imLocale]); -#endif p = rs[Rs_inputMethod]; if (p && *p) @@ -1570,11 +1571,9 @@ if (im_get_ic ("@im=none")) goto done; -done: ; -#if defined(HAVE_XSETLOCALE) || defined(HAVE_SETLOCALE) +done: if (rs[Rs_imLocale]) SET_LOCALE (locale); -#endif } void @@ -1629,28 +1628,6 @@ XTranslateCoordinates (dpy, parent, display->root, 0, 0, &x, &y, &cr); } -Pixmap -rxvt_term::get_pixmap_property (Atom property) -{ - Pixmap pixmap = None; - - int aformat; - unsigned long nitems, bytes_after; - Atom atype; - unsigned char *prop; - int result = XGetWindowProperty (dpy, display->root, property, - 0L, 1L, False, XA_PIXMAP, &atype, &aformat, - &nitems, &bytes_after, &prop); - if (result == Success) - { - if (atype == XA_PIXMAP) - pixmap = *(Pixmap *)prop; - XFree (prop); - } - - return pixmap; -} - #ifdef HAVE_BG_PIXMAP void