diff --git a/src/protocols/ssh/display.c b/src/protocols/ssh/display.c index 5cd4c2a5..5d2976a2 100644 --- a/src/protocols/ssh/display.c +++ b/src/protocols/ssh/display.c @@ -80,6 +80,7 @@ static void __guac_terminal_display_clear_select(guac_terminal_display* display) guac_protocol_send_cfill(socket, GUAC_COMP_SRC, select_layer, 0x00, 0x00, 0x00, 0x00); + guac_protocol_send_sync(socket, display->client->last_sent_timestamp); guac_socket_flush(socket); /* Text is no longer selected */ @@ -1004,6 +1005,7 @@ void guac_terminal_display_select(guac_terminal_display* display, guac_protocol_send_cfill(socket, GUAC_COMP_SRC, select_layer, 0x00, 0x80, 0xFF, 0x60); + guac_protocol_send_sync(socket, display->client->last_sent_timestamp); guac_socket_flush(socket); } diff --git a/src/protocols/ssh/guac_handlers.c b/src/protocols/ssh/guac_handlers.c index 50778afc..e3a87621 100644 --- a/src/protocols/ssh/guac_handlers.c +++ b/src/protocols/ssh/guac_handlers.c @@ -402,6 +402,8 @@ int ssh_guac_client_size_handler(guac_client* client, int width, int height) { terminal->scroll_end = rows - 1; guac_terminal_display_flush(terminal->display); + guac_protocol_send_sync(terminal->client->socket, + client->last_sent_timestamp); guac_socket_flush(terminal->client->socket); } diff --git a/src/protocols/ssh/terminal.c b/src/protocols/ssh/terminal.c index 56a9afa6..2076a077 100644 --- a/src/protocols/ssh/terminal.c +++ b/src/protocols/ssh/terminal.c @@ -393,6 +393,8 @@ void guac_terminal_scroll_display_down(guac_terminal* terminal, } guac_terminal_display_flush(terminal->display); + guac_protocol_send_sync(terminal->client->socket, + terminal->client->last_sent_timestamp); guac_socket_flush(terminal->client->socket); } @@ -450,6 +452,8 @@ void guac_terminal_scroll_display_up(guac_terminal* terminal, } guac_terminal_display_flush(terminal->display); + guac_protocol_send_sync(terminal->client->socket, + terminal->client->last_sent_timestamp); guac_socket_flush(terminal->client->socket); }