|
|
@ -997,8 +997,8 @@ void VNCSConnectionST::setDesktopSize(int fb_width, int fb_height,
|
|
|
|
{
|
|
|
|
{
|
|
|
|
unsigned int result;
|
|
|
|
unsigned int result;
|
|
|
|
|
|
|
|
|
|
|
|
if (!(accessRights & AccessSetDesktopSize)) return;
|
|
|
|
if (!(accessRights & AccessSetDesktopSize)) goto justnotify;
|
|
|
|
if (!rfb::Server::acceptSetDesktopSize) return;
|
|
|
|
if (!rfb::Server::acceptSetDesktopSize) goto justnotify;
|
|
|
|
|
|
|
|
|
|
|
|
// Don't bother the desktop with an invalid configuration
|
|
|
|
// Don't bother the desktop with an invalid configuration
|
|
|
|
if (!layout.validate(fb_width, fb_height)) {
|
|
|
|
if (!layout.validate(fb_width, fb_height)) {
|
|
|
@ -1021,6 +1021,14 @@ void VNCSConnectionST::setDesktopSize(int fb_width, int fb_height,
|
|
|
|
throw Exception("Desktop configured a different screen layout than requested");
|
|
|
|
throw Exception("Desktop configured a different screen layout than requested");
|
|
|
|
server->notifyScreenLayoutChange(this);
|
|
|
|
server->notifyScreenLayoutChange(this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
justnotify:
|
|
|
|
|
|
|
|
writer()->writeExtendedDesktopSize(reasonClient, resultProhibited,
|
|
|
|
|
|
|
|
server->pb->getRect().width(),
|
|
|
|
|
|
|
|
server->pb->getRect().height(),
|
|
|
|
|
|
|
|
server->screenLayout);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void VNCSConnectionST::fence(rdr::U32 flags, unsigned len, const char data[])
|
|
|
|
void VNCSConnectionST::fence(rdr::U32 flags, unsigned len, const char data[])
|
|
|
|