Maintain local terminal state explicitly
This commit is contained in:
@@ -72,6 +72,8 @@ namespace Network {
|
|||||||
|
|
||||||
uint64_t get_remote_state_num( void ) { return received_states.back().num; }
|
uint64_t get_remote_state_num( void ) { return received_states.back().num; }
|
||||||
|
|
||||||
|
const TimestampedState<RemoteState> & get_latest_remote_state( void ) const { return received_states.back(); }
|
||||||
|
|
||||||
int fd( void ) { return connection.fd(); }
|
int fd( void ) { return connection.fd(); }
|
||||||
|
|
||||||
void set_verbose( void ) { sender.set_verbose(); verbose = true; }
|
void set_verbose( void ) { sender.set_verbose(); verbose = true; }
|
||||||
|
|||||||
+4
-1
@@ -121,8 +121,11 @@ bool STMClient::process_network_input( void )
|
|||||||
|
|
||||||
/* is a new frame available from the terminal? */
|
/* is a new frame available from the terminal? */
|
||||||
if ( network->get_remote_state_num() != last_remote_num ) {
|
if ( network->get_remote_state_num() != last_remote_num ) {
|
||||||
string diff = network->get_remote_diff();
|
string diff = Terminal::Display::new_frame( true,
|
||||||
|
local_terminal->get_fb(),
|
||||||
|
network->get_latest_remote_state().state.get_fb() );
|
||||||
swrite( STDOUT_FILENO, diff.data(), diff.size() );
|
swrite( STDOUT_FILENO, diff.data(), diff.size() );
|
||||||
|
*local_terminal = network->get_latest_remote_state().state;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user