{
try {
screenLayoutChange(reason);
+ writeFramebufferUpdate();
} catch(rdr::Exception &e) {
close(e.str());
}
{
try {
setDesktopName(name);
+ writeFramebufferUpdate();
} catch(rdr::Exception& e) {
close(e.str());
}
{
try {
setCursor();
+ writeFramebufferUpdate();
} catch(rdr::Exception& e) {
close(e.str());
}
{
try {
setLEDState(state);
+ writeFramebufferUpdate();
} catch(rdr::Exception& e) {
close(e.str());
}
if (!layout.validate(fb_width, fb_height)) {
writer()->writeExtendedDesktopSize(reasonClient, resultInvalid,
fb_width, fb_height, layout);
- writeFramebufferUpdate();
return;
}
throw Exception("Desktop configured a different screen layout than requested");
server->notifyScreenLayoutChange(this);
}
-
- // but always send back a reply to the requesting client
- // (do this last as it might throw an exception on socket errors)
- writeFramebufferUpdate();
}
void VNCSConnectionST::fence(rdr::U32 flags, unsigned len, const char data[])
if (enable) {
requested.clear();
- writeFramebufferUpdate();
} else {
writer()->writeEndOfContinuousUpdates();
}
writer()->writeExtendedDesktopSize(reason, 0, cp.width, cp.height,
cp.screenLayout);
- writeFramebufferUpdate();
}
}
}
}
-
- writeFramebufferUpdate();
}
void VNCSConnectionST::setDesktopName(const char *name)
fprintf(stderr, "Client does not support desktop rename\n");
return;
}
-
- writeFramebufferUpdate();
}
void VNCSConnectionST::setLEDState(unsigned int ledstate)
cp.setLEDState(ledstate);
- if (!writer()->writeLEDState()) {
- // No client support
- return;
- }
-
- writeFramebufferUpdate();
+ writer()->writeLEDState();
}
void VNCSConnectionST::setSocketTimeouts()