]> source.dussan.org Git - tigervnc.git/commitdiff
Avoid doing a lot of resize related things if we're not actually resizing.
authorPierre Ossman <ossman@cendio.se>
Thu, 23 Aug 2012 14:40:52 +0000 (14:40 +0000)
committerPierre Ossman <ossman@cendio.se>
Thu, 23 Aug 2012 14:40:52 +0000 (14:40 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4957 3789f03b-4d11-0410-bbf8-ca57d06f2519

vncviewer/DesktopWindow.cxx

index 89398ba9e59bd4d16f43dc44be0b1d07b75bc3e0..0894275a7b62ab864e91bebb254ab4572cd79620 100644 (file)
@@ -210,24 +210,33 @@ void DesktopWindow::setCursor(int width, int height, const Point& hotspot,
 
 void DesktopWindow::resize(int x, int y, int w, int h)
 {
+  bool resizing;
+
+  if ((this->w() != w) || (this->h() != h))
+    resizing = true;
+  else
+    resizing = false;
+
   Fl_Window::resize(x, y, w, h);
 
-  // Try to get the remote size to match our window size, provided
-  // the following conditions are true:
-  //
-  // a) The user has this feature turned on
-  // b) The server supports it
-  // c) We're not still waiting for a chance to handle DesktopSize
-  //
-  if (not firstUpdate and ::remoteResize and cc->cp.supportsSetDesktopSize) {
-    // We delay updating the remote desktop as we tend to get a flood
-    // of resize events as the user is dragging the window.
-    Fl::remove_timeout(handleResizeTimeout, this);
-    Fl::add_timeout(0.5, handleResizeTimeout, this);
-  }
+  if (resizing) {
+    // Try to get the remote size to match our window size, provided
+    // the following conditions are true:
+    //
+    // a) The user has this feature turned on
+    // b) The server supports it
+    // c) We're not still waiting for a chance to handle DesktopSize
+    //
+    if (not firstUpdate and ::remoteResize and cc->cp.supportsSetDesktopSize) {
+      // We delay updating the remote desktop as we tend to get a flood
+      // of resize events as the user is dragging the window.
+      Fl::remove_timeout(handleResizeTimeout, this);
+      Fl::add_timeout(0.5, handleResizeTimeout, this);
+    }
 
-  // Deal with some scrolling corner cases
-  repositionViewport();
+    // Deal with some scrolling corner cases
+    repositionViewport();
+  }
 }