*** empty log message ***
authorroot <root>
Sun, 8 Jan 2006 00:07:18 +0000 (00:07 +0000)
committerroot <root>
Sun, 8 Jan 2006 00:07:18 +0000 (00:07 +0000)
src/command.C
src/rxvtperl.xs
src/screen.C
src/urxvt.pm

index fb539abf9da0256648ca79d997f8bc98a64ad88e..7ee1f060b69982dbae08de5dca29fd323f09a760 100644 (file)
@@ -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
index 1ba83c3a09dcea329903867461ad3ce5abc61f2d..a8a48a7540a0228a753ad09bde68763cec08e772 100644 (file)
@@ -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: $;$$
index 98db4acd259ee9ef2b6fb926e8d48ca3adae50f8..f8f9f33cb4bea5d2a7e73a8fad9bc49aa45634a2 100644 (file)
@@ -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]));
index 50dea27c217fa1ec30a2675f4f91c8817a4df438..22aad3c141deee4f12e3941e62dd2eb55d250452 100644 (file)
@@ -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";
          }
       }
    }