From: george82 Date: Mon, 5 Nov 2007 17:13:10 +0000 (+0000) Subject: Added throwing rfb::UnsupportedPixelFormatExceptions exception in ScaledDIBSectionBuf... X-Git-Tag: v0.0.90~384^2~98 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3e43ed5fb36aeb33483dded9a335038607544afe;p=tigervnc.git Added throwing rfb::UnsupportedPixelFormatExceptions exception in ScaledDIBSectionBuffer class. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2368 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- diff --git a/win/rfb_win32/ScaledDIBSectionBuffer.cxx b/win/rfb_win32/ScaledDIBSectionBuffer.cxx index efa27a0b..a3eb4fb3 100644 --- a/win/rfb_win32/ScaledDIBSectionBuffer.cxx +++ b/win/rfb_win32/ScaledDIBSectionBuffer.cxx @@ -41,6 +41,7 @@ ScaledDIBSectionBuffer::~ScaledDIBSectionBuffer() { 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; @@ -50,7 +51,7 @@ void ScaledDIBSectionBuffer::setScale(int scale_) { 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) { diff --git a/win/vncviewer/DesktopWindow.cxx b/win/vncviewer/DesktopWindow.cxx index 75437070..296be662 100644 --- a/win/vncviewer/DesktopWindow.cxx +++ b/win/vncviewer/DesktopWindow.cxx @@ -73,7 +73,7 @@ LRESULT CALLBACK DesktopWindowProc(HWND wnd, UINT msg, WPARAM wParam, LPARAM lPa 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());