ScrollOnKey wasn't working because I failed to set seen_key_event in
[u/mdw/putty] / terminal.c
index 7bb0b16..b0ad356 100644 (file)
@@ -1133,7 +1133,6 @@ void term_out(void)
                else
                    print_state = 0;
                if (print_state == 4) {
-                   printing = only_printing = FALSE;
                    term_print_finish();
                }
                continue;
@@ -1377,12 +1376,12 @@ void term_out(void)
                     * Perform an actual beep if we're not overloaded.
                     */
                    if (!cfg.bellovl || !beep_overloaded) {
-                       beep(cfg.beep);
                        if (cfg.beep == BELL_VISUAL) {
                            in_vbell = TRUE;
                            vbell_startpoint = ticks;
                            term_update();
-                       }
+                       } else
+                           beep(cfg.beep);
                    }
                    disptop = 0;
                }
@@ -1915,8 +1914,6 @@ void term_out(void)
                                print_state = 0;
                                term_print_setup();
                            } else if (esc_args[0] == 4 && printing) {
-                               printing = FALSE;
-                               only_printing = FALSE;
                                term_print_finish();
                            }
                        }
@@ -2998,8 +2995,8 @@ void term_blink(int flg)
     now = GETTICKCOUNT();
     blink_diff = now - last_tblink;
 
-    /* Make sure the text blinks no more than 2Hz */
-    if (blink_diff < 0 || blink_diff > 450) {
+    /* Make sure the text blinks no more than 2Hz; we'll use 0.45 s period. */
+    if (blink_diff < 0 || blink_diff > (TICKSPERSEC * 9 / 20)) {
        last_tblink = now;
        tblinker = !tblinker;
     }
@@ -3708,6 +3705,11 @@ void term_nopaste()
     paste_len = 0;
 }
 
+int term_paste_pending(void)
+{
+    return paste_len != 0;
+}
+
 void term_paste()
 {
     static long last_paste = 0;