1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00

Fix a bug in which terminal output received from the session could be

buffered in terminal.c indefinitely and only released when further
output turned up.

Arose because we suppress the call to term_out from term_data if a
drag-select is in progress, but when the drag-select ends we weren't
proactively calling term_out to release the buffered data. So if your
session generated some terminal output while you were in mid-select,
_and had stopped by the time you let go of the mouse button_, then the
output would just sit there until released by the next call to
term_data.

[originally from svn r9768]
This commit is contained in:
Simon Tatham 2013-03-10 11:04:07 +00:00
parent a9eb51b7d4
commit 4c8c5e26b9

View File

@ -6002,6 +6002,13 @@ void term_mouse(Terminal *term, Mouse_Button braw, Mouse_Button bcooked,
request_paste(term->frontend);
}
/*
* Since terminal output is suppressed during drag-selects, we
* should make sure to write any pending output if one has just
* finished.
*/
if (term->selstate != DRAGGING)
term_out(term);
term_update(term);
}
@ -6101,6 +6108,14 @@ void term_deselect(Terminal *term)
{
deselect(term);
term_update(term);
/*
* Since terminal output is suppressed during drag-selects, we
* should make sure to write any pending output if one has just
* finished.
*/
if (term->selstate != DRAGGING)
term_out(term);
}
int term_ldisc(Terminal *term, int option)