|
|
@@ -133,6 +133,7 @@ CConn::CConn(const char* vncServerName, network::Socket* socket=NULL) |
|
|
|
CConn::~CConn() |
|
|
|
{ |
|
|
|
OptionsDialog::removeCallback(handleOptions); |
|
|
|
Fl::remove_timeout(handleUpdateTimeout, this); |
|
|
|
|
|
|
|
for (size_t i = 0; i < sizeof(decoders)/sizeof(decoders[0]); i++) |
|
|
|
delete decoders[i]; |
|
|
@@ -344,6 +345,9 @@ void CConn::framebufferUpdateStart() |
|
|
|
pendingUpdate = false; |
|
|
|
|
|
|
|
requestNewUpdate(); |
|
|
|
|
|
|
|
// Update the screen prematurely for very slow updates |
|
|
|
Fl::add_timeout(1.0, handleUpdateTimeout, this); |
|
|
|
} |
|
|
|
|
|
|
|
// framebufferUpdateEnd() is called at the end of an update. |
|
|
@@ -352,6 +356,7 @@ void CConn::framebufferUpdateStart() |
|
|
|
// appropriately, and then request another incremental update. |
|
|
|
void CConn::framebufferUpdateEnd() |
|
|
|
{ |
|
|
|
Fl::remove_timeout(handleUpdateTimeout, this); |
|
|
|
desktop->updateWindow(); |
|
|
|
|
|
|
|
if (firstUpdate) { |
|
|
@@ -692,3 +697,14 @@ void CConn::handleOptions(void *data) |
|
|
|
self->requestNewUpdate(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void CConn::handleUpdateTimeout(void *data) |
|
|
|
{ |
|
|
|
CConn *self = (CConn *)data; |
|
|
|
|
|
|
|
assert(self); |
|
|
|
|
|
|
|
self->desktop->updateWindow(); |
|
|
|
|
|
|
|
Fl::repeat_timeout(1.0, handleUpdateTimeout, data); |
|
|
|
} |