--- rxvt-unicode/src/rxvtperl.xs 2006/01/20 14:41:07 1.82 +++ rxvt-unicode/src/rxvtperl.xs 2006/01/20 18:50:49 1.84 @@ -642,6 +642,13 @@ break; + case PropertyNotify: + setuv (window, xe->xproperty.window); + setuv (atom, xe->xproperty.atom); + setuv (time, xe->xproperty.time); + setiv (state, xe->xproperty.state); + break; + case ClientMessage: setuv (window, xe->xclient.window); setuv (message_type, xe->xclient.message_type); @@ -651,6 +658,7 @@ setuv (l2, xe->xclient.data.l[2]); setuv (l3, xe->xclient.data.l[3]); setuv (l4, xe->xclient.data.l[4]); + break; } XPUSHs (sv_2mortal (newRV_noinc ((SV *)hv))); @@ -1206,6 +1214,12 @@ RETVAL void +rxvt_term::focus_in () + +void +rxvt_term::focus_out () + +void rxvt_term::want_refresh () CODE: THIS->want_refresh = 1; @@ -1237,7 +1251,7 @@ int len = min (wcslen (wstr) - start_ofs, max_len); - if (!IN_RANGE_INC (start_col, 0, THIS->ncol - len)) + if (start_col < 0 || start_col + len > THIS->ncol) { free (wstr); croak ("new_text extends beyond horizontal margins"); @@ -1281,7 +1295,7 @@ AV *av = (AV *)SvRV (new_rend); int len = min (AvFILL (av) + 1 - start_ofs, max_len); - if (!IN_RANGE_INC (start_col, 0, THIS->ncol - len)) + if (start_col < 0 || start_col + len > THIS->ncol) croak ("new_rend array extends beyond horizontal margins"); for (int col = start_col; col < start_col + len; col++) @@ -1734,7 +1748,16 @@ void XMoveResizeWindow (rxvt_term *term, Window window, int x, int y, unsigned int width, unsigned int height) - C_ARGS: term->display->display, (Window)window, x, y, width, height + C_ARGS: term->display->display, window, x, y, width, height + +void +rxvt_term::XChangeInput (Window window, U32 add_events, U32 del_events = 0) + CODE: +{ + XWindowAttributes attr; + XGetWindowAttributes (THIS->display->display, window, &attr); + XSelectInput (THIS->display->display, window, attr.your_event_mask | add_events & ~del_events); +} void rxvt_term::XTranslateCoordinates (Window src, Window dst, int x, int y)