ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/urxvt.pm
(Generate patch)

Comparing rxvt-unicode/src/urxvt.pm (file contents):
Revision 1.228 by sf-exg, Tue Oct 29 14:12:58 2013 UTC vs.
Revision 1.231 by root, Sun Apr 27 20:26:28 2014 UTC

281 281
282=item on_refresh_end $term 282=item on_refresh_end $term
283 283
284Called just after the screen gets redrawn. See C<on_refresh_begin>. 284Called just after the screen gets redrawn. See C<on_refresh_begin>.
285 285
286=item on_user_command $term, $string 286=item on_user_command $term, $string *DEPRECATED*
287 287
288Called whenever a user-configured event is being activated (e.g. via 288Called whenever a user-configured event is being activated (e.g. via
289a C<perl:string> action bound to a key, see description of the B<keysym> 289a C<perl:string> action bound to a key, see description of the B<keysym>
290resource in the urxvt(1) manpage). 290resource in the urxvt(1) manpage).
291 291
292The event is simply the action string. This interface is assumed to change 292The event is simply the action string. This interface is going away in
293slightly in the future. 293preference to the C<< ->register_keysym_action >> method.
294 294
295=item on_register_command $term, $keysym, $modifiermask, $string 295=item on_register_command $term, $keysym, $modifiermask, $string
296 296
297Called after parsing a keysym resource but before registering the 297Called after parsing a keysym resource but before registering the
298associated binding. If this hook returns TRUE the binding is not 298associated binding. If this hook returns a true value the binding
299registered. It can be used to modify a binding by calling 299is not registered. It can be used to modify a binding by calling
300C<register_command>. 300C<register_command>.
301 301
302=item on_resize_all_windows $term, $new_width, $new_height 302=item on_resize_all_windows $term, $new_width, $new_height
303 303
304Called just after the new window size has been calculated, but before 304Called just after the new window size has been calculated, but before
305windows are actually being resized or hints are being set. If this hook 305windows are actually being resized or hints are being set. If this hook
306returns TRUE, setting of the window hints is being skipped. 306returns a true value, setting of the window hints is being skipped.
307 307
308=item on_x_event $term, $event 308=item on_x_event $term, $event
309 309
310Called on every X event received on the vt window (and possibly other 310Called on every X event received on the vt window (and possibly other
311windows). Should only be used as a last resort. Most event structure 311windows). Should only be used as a last resort. Most event structure
350manpage), with the additional members C<row> and C<col>, which are the 350manpage), with the additional members C<row> and C<col>, which are the
351(real, not screen-based) row and column under the mouse cursor. 351(real, not screen-based) row and column under the mouse cursor.
352 352
353C<on_key_press> additionally receives the string rxvt-unicode would 353C<on_key_press> additionally receives the string rxvt-unicode would
354output, if any, in locale-specific encoding. 354output, if any, in locale-specific encoding.
355
356subwindow.
357 355
358=item on_client_message $term, $event 356=item on_client_message $term, $event
359 357
360=item on_wm_protocols $term, $event 358=item on_wm_protocols $term, $event
361 359
667# called by the rxvt core 665# called by the rxvt core
668sub invoke { 666sub invoke {
669 local $TERM = shift; 667 local $TERM = shift;
670 my $htype = shift; 668 my $htype = shift;
671 669
672 if ($htype == 0) { # INIT 670 if ($htype == HOOK_INIT) {
673 my @dirs = $TERM->perl_libdirs; 671 my @dirs = $TERM->perl_libdirs;
674 672
675 my %ext_arg; 673 my %ext_arg;
676 674
677 { 675 {
716 714
717 if (my $cb = $TERM->{_hook}[$htype]) { 715 if (my $cb = $TERM->{_hook}[$htype]) {
718 verbose 10, "$HOOKNAME[$htype] (" . (join ", ", $TERM, @_) . ")" 716 verbose 10, "$HOOKNAME[$htype] (" . (join ", ", $TERM, @_) . ")"
719 if $verbosity >= 10; 717 if $verbosity >= 10;
720 718
721 for my $pkg (keys %$cb) { 719 for my $pkg (
720 # this hook is only sent to the extension with the name
721 # matching the first arg
722 $htype == HOOK_KEYBOARD_DISPATCH
723 ? exists $cb->{"urxvt::ext::$_[0]"} ? "urxvt::ext::" . shift : return undef
724 : keys %$cb
725 ) {
722 my $retval_ = eval { $cb->{$pkg}->($TERM->{_pkg}{$pkg} || $TERM, @_) }; 726 my $retval_ = eval { $cb->{$pkg}->($TERM->{_pkg}{$pkg} || $TERM, @_) };
723 $retval ||= $retval_; 727 $retval ||= $retval_;
724 728
725 if ($@) { 729 if ($@) {
726 $TERM->ungrab; # better to lose the grab than the session 730 $TERM->ungrab; # better to lose the grab than the session
730 734
731 verbose 11, "$HOOKNAME[$htype] returning <$retval>" 735 verbose 11, "$HOOKNAME[$htype] returning <$retval>"
732 if $verbosity >= 11; 736 if $verbosity >= 11;
733 } 737 }
734 738
735 if ($htype == 1) { # DESTROY 739 if ($htype == HOOK_DESTROY) {
736 # clear package objects 740 # clear package objects
737 %$_ = () for values %{ $TERM->{_pkg} }; 741 %$_ = () for values %{ $TERM->{_pkg} };
738 742
739 # clear package 743 # clear package
740 %$TERM = (); 744 %$TERM = ();
827} 831}
828 832
829=item $self->enable ($hook_name => $cb[, $hook_name => $cb..]) 833=item $self->enable ($hook_name => $cb[, $hook_name => $cb..])
830 834
831Dynamically enable the given hooks (named without the C<on_> prefix) for 835Dynamically enable the given hooks (named without the C<on_> prefix) for
832this extension, replacing any previous hook. This is useful when you want 836this extension, replacing any hook previously installed via C<enable> in
833to overwrite time-critical hooks only temporarily. 837this extension.
838
839This is useful when you want to overwrite time-critical hooks only
840temporarily.
834 841
835To install additional callbacks for the same hook, you can use the C<on> 842To install additional callbacks for the same hook, you can use the C<on>
836method of the C<urxvt::term> class. 843method of the C<urxvt::term> class.
837 844
838=item $self->disable ($hook_name[, $hook_name..]) 845=item $self->disable ($hook_name[, $hook_name..])

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines