void ScaledDIBSectionBuffer::setScale(int scale_) {
if (scale == scale_ || scale_ <= 0) return;
+ if (!(getPixelFormat().trueColour) && scale_ != 100) throw rfb::UnsupportedPixelFormatException();
ScaledPixelBuffer::setScale(scale_);
if (scale == 100) scaling = false;
else scaling = true;
void ScaledDIBSectionBuffer::setPF(const PixelFormat &pf_) {
if (memcmp(&(ScaledPixelBuffer::pf), &pf_, sizeof(pf_)) == 0) return;
- if (!pf_.trueColour) throw rfb::UnsupportedPixelFormatException();
+ if (!pf_.trueColour && isScaling()) throw rfb::UnsupportedPixelFormatException();
pf = pf_;
if (scaling) {
try {
result = _this->processMessage(msg, wParam, lParam);
} catch (rfb::UnsupportedPixelFormatException &e) {
- MsgBox(0, e.str(), MB_OK);
+ MsgBox(0, e.str(), MB_OK | MB_ICONINFORMATION);
_this->getCallback()->closeWindow();
} catch (rdr::Exception& e) {
vlog.error("untrapped: %s", e.str());