From d9729cc29eb717aae2c68ced24d4b04d4c2ea4cf Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Sun, 28 Oct 2012 09:26:54 +0100 Subject: Handle all available input before redrawing --- src/remote.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/remote.cc') diff --git a/src/remote.cc b/src/remote.cc index 7bd99d59..a5bd87b9 100644 --- a/src/remote.cc +++ b/src/remote.cc @@ -193,6 +193,20 @@ void RemoteUI::draw(const DisplayBuffer& display_buffer, static const Key::Modifiers resize_modifier = (Key::Modifiers)0x80; +bool RemoteUI::is_key_available() +{ + timeval tv; + fd_set rfds; + + FD_ZERO(&rfds); + FD_SET(m_socket, &rfds); + + tv.tv_sec = 0; + tv.tv_usec = 0; + int res = select(m_socket+1, &rfds, NULL, NULL, &tv); + return res == 1; +} + Key RemoteUI::get_key() { Key key = read(m_socket); -- cgit v1.2.3