From: root Date: Sun, 8 Jan 2006 00:07:18 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=fcdf1638d9e4baa79c36069ed0be33da744deead;p=dana%2Furxvt.git *** empty log message *** --- diff --git a/src/command.C b/src/command.C index fb539abf..7ee1f060 100644 --- a/src/command.C +++ b/src/command.C @@ -1314,33 +1314,6 @@ rxvt_term::x_cb (XEvent &ev) SET_R (this); SET_LOCALE (locale); -#if defined(CURSOR_BLINK) - if (OPTION (Opt_cursorBlink) && ev.type == KeyPress) - { - if (hidden_cursor) - { - hidden_cursor = 0; - want_refresh = 1; - } - - cursor_blink_ev.start (NOW + BLINK_INTERVAL); - } -#endif - -#if defined(POINTER_BLANK) - if (OPTION (Opt_pointerBlank) && pointerBlankDelay > 0) - { - if (ev.type == MotionNotify - || ev.type == ButtonPress - || ev.type == ButtonRelease) - if (hidden_pointer) - pointer_unblank (); - - if (ev.type == KeyPress && hidden_pointer == 0) - pointer_blank (); - } -#endif - Window unused_root, unused_child; int unused_root_x, unused_root_y; unsigned int unused_mask; @@ -1380,7 +1353,7 @@ rxvt_term::x_cb (XEvent &ev) { iso14755buf = ISO_14755_51 | 0x2400 | (ks & 0x1f); commit_iso14755 (); - return; // case-break; + goto skip_switch; } for (unsigned short *i = iso14755_symtab; i[0]; i+= 2) @@ -1388,7 +1361,7 @@ rxvt_term::x_cb (XEvent &ev) { iso14755buf = ISO_14755_51 | i[1]; commit_iso14755 (); - return; // case-break; + goto skip_switch; } scr_bell (); @@ -1744,6 +1717,35 @@ rxvt_term::x_cb (XEvent &ev) } break; } + +skip_switch: ; + +#if defined(CURSOR_BLINK) + if (OPTION (Opt_cursorBlink) && ev.type == KeyPress) + { + if (hidden_cursor) + { + hidden_cursor = 0; + want_refresh = 1; + } + + cursor_blink_ev.start (NOW + BLINK_INTERVAL); + } +#endif + +#if defined(POINTER_BLANK) + if (OPTION (Opt_pointerBlank) && pointerBlankDelay > 0) + { + if (ev.type == MotionNotify + || ev.type == ButtonPress + || ev.type == ButtonRelease) + if (hidden_pointer) + pointer_unblank (); + + if (ev.type == KeyPress && hidden_pointer == 0) + pointer_blank (); + } +#endif } void diff --git a/src/rxvtperl.xs b/src/rxvtperl.xs index 1ba83c3a..a8a48a75 100644 --- a/src/rxvtperl.xs +++ b/src/rxvtperl.xs @@ -1158,6 +1158,42 @@ rxvt_term::_resource (char *name, int index, SV *newval = 0) } } +bool +rxvt_term::option (U32 optval, int set = -1) + CODE: +{ + RETVAL = THIS->options & optval; + + if (set >= 0) + { + if (set) + THIS->options |= optval; + else + THIS->options &= ~optval; + + switch (optval) + { + case Opt_skipBuiltinGlyphs: + THIS->set_fonts (); + THIS->scr_remap_chars (); + THIS->scr_touch (true); + THIS->want_refresh = 1; + break; + + case Opt_cursorUnderline: + THIS->want_refresh = 1; + break; + +# case Opt_scrollBar_floating: +# case Opt_scrollBar_right: +# THIS->resize_all_windows (THIS->width, THIS->height, 1); +# break; + } + } +} + OUTPUT: + RETVAL + void rxvt_term::cur (...) PROTOTYPE: $;$$ diff --git a/src/screen.C b/src/screen.C index 98db4acd..f8f9f33c 100644 --- a/src/screen.C +++ b/src/screen.C @@ -2390,7 +2390,7 @@ rxvt_term::scr_remap_chars (line_t &l) if (!l.t) return; - l.touch (); // maybe a bit of an overkill, but its not performance-relevant + l.touch (); // maybe a bit of an overkill, but it's not performance-relevant for (int i = ncol; i--; ) l.r[i] = SET_FONT (l.r[i], FONTSET (l.r[i])->find_font (l.t[i])); diff --git a/src/urxvt.pm b/src/urxvt.pm index 50dea27c..22aad3c1 100644 --- a/src/urxvt.pm +++ b/src/urxvt.pm @@ -483,20 +483,25 @@ sub invoke { if ($htype == 0) { # INIT my @dirs = ((split /:/, $TERM->resource ("perl_lib")), "$LIBDIR/perl"); - my @ext = (map { split /,/, $TERM->resource ("perl_ext_$_") } 1, 2); + my %want_ext; - while (@ext) { - my $ext = shift @ext; - if ($ext eq "default") { - unshift @ext, qw(selection); + for (map { split /,/, $TERM->resource ("perl_ext_$_") } 1, 2) { + if ($_ eq "default") { + $want_ext{$_}++ for qw(selection); + } elsif (/-(.*)/) { + delete $want_ext{$1}; } else { - my @files = grep -f $_, map "$_/$ext", @dirs; + $want_ext{$_}++; + } + } - if (@files) { - register_package extension_package $files[0]; - } else { - warn "perl extension '$ext' not found in perl library search path\n"; - } + for my $ext (keys %want_ext) { + my @files = grep -f $_, map "$_/$ext", @dirs; + + if (@files) { + register_package extension_package $files[0]; + } else { + warn "perl extension '$ext' not found in perl library search path\n"; } } }