Let CConnection intercept more callbacks

We need more callbacks for correct operation of multi-threaded
rect decoding.
diff --git a/common/rfb/CConnection.cxx b/common/rfb/CConnection.cxx
index 49b8a82..2ddfc33 100644
--- a/common/rfb/CConnection.cxx
+++ b/common/rfb/CConnection.cxx
@@ -301,6 +301,29 @@
   writer_->writeClientInit(shared);
 }
 
+void CConnection::setDesktopSize(int w, int h)
+{
+  CMsgHandler::setDesktopSize(w,h);
+}
+
+void CConnection::setExtendedDesktopSize(unsigned reason,
+                                         unsigned result,
+                                         int w, int h,
+                                         const ScreenSet& layout)
+{
+  CMsgHandler::setExtendedDesktopSize(reason, result, w, h, layout);
+}
+
+void CConnection::framebufferUpdateStart()
+{
+  CMsgHandler::framebufferUpdateStart();
+}
+
+void CConnection::framebufferUpdateEnd()
+{
+  CMsgHandler::framebufferUpdateEnd();
+}
+
 void CConnection::dataRect(const Rect& r, int encoding)
 {
   decoder.decodeRect(r, encoding, framebuffer);
diff --git a/common/rfb/CConnection.h b/common/rfb/CConnection.h
index 7f8dbea..6bc7a38 100644
--- a/common/rfb/CConnection.h
+++ b/common/rfb/CConnection.h
@@ -92,6 +92,15 @@
 
     // Methods overridden from CMsgHandler
 
+    // Note: These must be called by any deriving classes
+
+    virtual void setDesktopSize(int w, int h);
+    virtual void setExtendedDesktopSize(unsigned reason, unsigned result,
+                                        int w, int h,
+                                        const ScreenSet& layout);
+
+    virtual void framebufferUpdateStart();
+    virtual void framebufferUpdateEnd();
     virtual void dataRect(const Rect& r, int encoding);