--- rxvt-unicode/src/rxvtperl.xs 2012/06/05 22:23:07 1.171 +++ rxvt-unicode/src/rxvtperl.xs 2012/06/06 20:55:37 1.175 @@ -402,18 +402,19 @@ SAVETMPS; dSP; + PUSHMARK (SP); EXTEND (SP, 2); PUSHs (sv_2mortal (newSVterm (term))); PUSHs (sv_2mortal (newSViv (type))); PUTBACK; - call_pv ("urxvt::usage", G_VOID | G_DISCARD | G_EVAL); + call_pv ("urxvt::usage", G_VOID | G_DISCARD); FREETMPS; LEAVE; } uint8_t -rxvt_perl_interp::resource (rxvt_term *term, const char *name, bool arg, bool longopt, bool flag, const char *value) +rxvt_perl_interp::parse_resource (rxvt_term *term, const char *name, bool arg, bool longopt, bool flag, const char *value) { localise_env set_environ (perl_environ); @@ -421,6 +422,7 @@ SAVETMPS; dSP; + PUSHMARK (SP); EXTEND (SP, 6); PUSHs (sv_2mortal (newSVterm (term))); PUSHs (sv_2mortal (newSVpv (name, 0))); @@ -429,7 +431,8 @@ PUSHs (flag ? &PL_sv_yes : &PL_sv_no); PUSHs (value ? sv_2mortal (newSVpv (value, 0)) : &PL_sv_undef); PUTBACK; - call_pv ("urxvt::resource", G_SCALAR | G_EVAL); + call_pv ("urxvt::parse_resource", G_SCALAR); + SPAGAIN; uint8_t ret = POPi; @@ -1063,6 +1066,11 @@ } } +void +rxvt_term::put_option_db (octet_string specifier, octet_string value) + CODE: + XrmPutStringResource (&THIS->option_db, specifier, value); + int rxvt_term::grab_button (int button, U32 modifiers, Window window = THIS->vt) CODE: @@ -2048,8 +2056,6 @@ #if ENABLE_TRANSPARENCY -#if 0 - rxvt_img * rxvt_term::new_img_from_root () CODE: @@ -2059,8 +2065,6 @@ #endif -#endif - #if HAVE_PIXBUF rxvt_img * @@ -2090,10 +2094,18 @@ if (img) // TODO: cannot be false { + XRenderPictFormat *f = XRenderFindVisualFormat (THIS->dpy, THIS->visual); + rxvt_img *img2 = 0; + + if (f != img->format) + img = img2 = img->convert_to (f, THIS->pix_colors [Color_bg]); + img->unshare (); THIS->bg_pixmap = img->steal (); THIS->bg_flags |= rxvt_term::BG_NEEDS_REFRESH; THIS->bg_valid_since = ev::now (); // TODO: extra bloat + + delete img2; } #endif