Get rid of getFbSize()/getDesktopSize() in common

It was only used by WinVNC, so push it there instead.
diff --git a/common/rfb/SDesktop.h b/common/rfb/SDesktop.h
index 322fe32..717ddbc 100644
--- a/common/rfb/SDesktop.h
+++ b/common/rfb/SDesktop.h
@@ -65,11 +65,6 @@
 
     virtual void stop() {}
 
-    // getFbSize() returns the current dimensions of the framebuffer.
-    // This can be called even while the SDesktop is not start()ed.
-
-    virtual Point getFbSize() = 0;
-
     // setScreenLayout() requests to reconfigure the framebuffer and/or
     // the layout of screens.
     virtual unsigned int setScreenLayout(int __unused_attr fb_width,
diff --git a/common/rfb/VNCServerST.h b/common/rfb/VNCServerST.h
index 2dfdbbd..3a56370 100644
--- a/common/rfb/VNCServerST.h
+++ b/common/rfb/VNCServerST.h
@@ -120,10 +120,6 @@
 
     SConnection* getSConnection(network::Socket* sock);
 
-    // getDesktopSize() returns the size of the SDesktop exported by this
-    // server.
-    Point getDesktopSize() const {return desktop->getFbSize();}
-
     // getName() returns the name of this VNC Server.  NB: The value returned
     // is the server's internal buffer which may change after any other methods
     // are called - take a copy if necessary.
diff --git a/unix/x0vncserver/x0vncserver.cxx b/unix/x0vncserver/x0vncserver.cxx
index b9d717f..6fd6bc3 100644
--- a/unix/x0vncserver/x0vncserver.cxx
+++ b/unix/x0vncserver/x0vncserver.cxx
@@ -427,10 +427,6 @@
   virtual void clientCutText(const char* str, int len) {
   }
 
-  virtual Point getFbSize() {
-    return Point(pb->width(), pb->height());
-  }
-
   // -=- TXGlobalEventHandler interface
 
   virtual bool handleGlobalEvent(XEvent* ev) {
diff --git a/unix/xserver/hw/vnc/XserverDesktop.h b/unix/xserver/hw/vnc/XserverDesktop.h
index 7f7823a..9e7dfd1 100644
--- a/unix/xserver/hw/vnc/XserverDesktop.h
+++ b/unix/xserver/hw/vnc/XserverDesktop.h
@@ -91,7 +91,6 @@
   virtual void pointerEvent(const rfb::Point& pos, int buttonMask);
   virtual void keyEvent(rdr::U32 keysym, rdr::U32 keycode, bool down);
   virtual void clientCutText(const char* str, int len);
-  virtual rfb::Point getFbSize() { return rfb::Point(width(), height()); }
   virtual unsigned int setScreenLayout(int fb_width, int fb_height,
                                        const rfb::ScreenSet& layout);
 
diff --git a/win/rfb_win32/SDisplay.h b/win/rfb_win32/SDisplay.h
index 9892ed9..f36b2b7 100644
--- a/win/rfb_win32/SDisplay.h
+++ b/win/rfb_win32/SDisplay.h
@@ -68,7 +68,6 @@
       virtual void pointerEvent(const Point& pos, int buttonmask);
       virtual void keyEvent(rdr::U32 keysym, rdr::U32 keycode, bool down);
       virtual void clientCutText(const char* str, int len);
-      virtual Point getFbSize();
 
       // -=- Clipboard
       
@@ -87,6 +86,10 @@
 
       void setStatusLocation(bool* status) {statusLocation = status;}
 
+      // -=- Used (indirectly) by JavaViewer to get desktop size
+
+      Point getFbSize();
+
       friend class SDisplayCore;
 
       static IntParameter updateMethod;
diff --git a/win/winvnc/JavaViewer.cxx b/win/winvnc/JavaViewer.cxx
index c963122..e2e307e 100644
--- a/win/winvnc/JavaViewer.cxx
+++ b/win/winvnc/JavaViewer.cxx
@@ -17,6 +17,7 @@
  */
 
 #include <winvnc/JavaViewer.h>
+#include <winvnc/VNCServerWin32.h>
 #include <winvnc/resource.h>
 #include <rdr/MemInStream.h>
 #include <rfb/LogWriter.h>
@@ -31,7 +32,7 @@
 
 static rfb::LogWriter vlog("JavaViewerServer");
 
-JavaViewerServer::JavaViewerServer(rfb::VNCServerST* svr) : server(svr) {
+JavaViewerServer::JavaViewerServer(VNCServerWin32* svr) : server(svr) {
 }
 
 JavaViewerServer::~JavaViewerServer() {
diff --git a/win/winvnc/JavaViewer.h b/win/winvnc/JavaViewer.h
index ecda4d3..79a3969 100644
--- a/win/winvnc/JavaViewer.h
+++ b/win/winvnc/JavaViewer.h
@@ -25,14 +25,15 @@
 #define WINVNC_JAVA_VIEWER
 
 #include <rfb/HTTPServer.h>
-#include <rfb/VNCServerST.h>
 #include <rdr/SubstitutingInStream.h>
 
 namespace winvnc {
 
+  class VNCServerWin32;
+
   class JavaViewerServer : public rfb::HTTPServer, public rdr::Substitutor {
   public:
-    JavaViewerServer(rfb::VNCServerST* desktop);
+    JavaViewerServer(VNCServerWin32* desktop);
     virtual ~JavaViewerServer();
 
     virtual rdr::InStream* getFile(const char* name, const char** contentType,
@@ -46,7 +47,7 @@
     }
   protected:
     int rfbPort;
-    rfb::VNCServerST* server;
+    VNCServerWin32* server;
   };
 
 };
diff --git a/win/winvnc/VNCServerWin32.cxx b/win/winvnc/VNCServerWin32.cxx
index d86384d..b164c65 100644
--- a/win/winvnc/VNCServerWin32.cxx
+++ b/win/winvnc/VNCServerWin32.cxx
@@ -63,7 +63,7 @@
       CreateEvent(0, FALSE, FALSE, "Global\\SessionEventTigerVNC") : 0),
     vncServer(CStr(ComputerName().buf), &desktop),
     thread_id(-1), runServer(false), isDesktopStarted(false),
-    httpServer(&vncServer), config(&sockMgr),
+    httpServer(this), config(&sockMgr),
     rfbSock(&sockMgr), httpSock(&sockMgr), trayIcon(0),
     queryConnectDialog(0)
 {
diff --git a/win/winvnc/VNCServerWin32.h b/win/winvnc/VNCServerWin32.h
index f384bbe..ed051dc 100644
--- a/win/winvnc/VNCServerWin32.h
+++ b/win/winvnc/VNCServerWin32.h
@@ -78,6 +78,10 @@
 
     bool setClientsStatus(rfb::ListConnInfo* LCInfo);
 
+    // Used by JavaViewerServer
+    const char* getName() {return vncServer.getName();}
+    rfb::Point getDesktopSize() {return desktop.getFbSize();}
+
   protected:
     // VNCServerST::QueryConnectionHandler interface
     // Callback used to prompt user to accept or reject a connection.