X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/1709795fee167cc2d2d423df0161e7963376b910..5c0ea258b7f1d4725ddd717d9b6e9e7f8ec079f3:/terminal.c diff --git a/terminal.c b/terminal.c index 7a6c5bce..b0ad3565 100644 --- a/terminal.c +++ b/terminal.c @@ -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; } @@ -3221,8 +3218,10 @@ static void clipme(pos top, pos bottom, int rect) top.y++; top.x = rect ? old_top_x : 0; } +#if SELECTION_NUL_TERMINATED wblen++; *wbptr++ = 0; +#endif write_clip(workbuf, wblen, FALSE); /* transfer to clipboard */ if (buflen > 0) /* indicates we allocated this buffer */ sfree(workbuf); @@ -3686,8 +3685,12 @@ void term_mouse(Mouse_Button b, Mouse_Action a, int x, int y, } else selstate = NO_SELECTION; } else if (b == MBT_PASTE - && (a == MA_CLICK || a == MA_2CLK || a == MA_3CLK)) { - term_do_paste(); + && (a == MA_CLICK +#if MULTICLICK_ONLY_EVENT + || a == MA_2CLK || a == MA_3CLK +#endif + )) { + request_paste(); } term_update(); @@ -3702,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;