]> source.dussan.org Git - tigervnc.git/commitdiff
Fixed a bug with the blanking frame window while the rewind is performing.
authorgeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Thu, 24 Feb 2005 13:13:33 +0000 (13:13 +0000)
committergeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Thu, 24 Feb 2005 13:13:33 +0000 (13:13 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@229 3789f03b-4d11-0410-bbf8-ca57d06f2519

rfbplayer/rfbplayer.cxx
rfbplayer/rfbplayer.h

index d232461b4c123d105169832305a5b17e5d2fb737..e96cd39e6a739d466e8aa483c67e9b65e222a6cf 100644 (file)
@@ -226,7 +226,7 @@ RfbPlayer::RfbPlayer(char *_fileName, int _depth = DEPTH_AUTO,
   seekMode(false), fileName(_fileName), lastPos(0), timeStatic(0), 
   speedEdit(0), posTrackBar(0), speedUpDown(0), acceptBell(_acceptBell), 
   rfbReader(0), sessionTimeMs(0), sliderDraging(false), sliderStepMs(0), 
-  loopPlayback(false), imageDataStartTime(0) {
+  loopPlayback(false), imageDataStartTime(0), rewindFlag(false) {
 
   CTRL_BAR_HEIGHT = 28;
 
@@ -488,7 +488,7 @@ LRESULT RfbPlayer::processFrameMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARA
 
   case WM_PAINT:
     {
-      if (isSeeking()) {
+      if (isSeeking() || rewindFlag) {
         seekMode = true;
         return 0;
       } else {
@@ -826,10 +826,12 @@ void RfbPlayer::processMsg() {
     // It's a special exception to perform backward seeking.
     // We only rewind the stream and seek the offset
     if (strcmp(e.str(), "[REWIND]") == 0) {
+      rewindFlag = true; 
       long seekOffset = max(getSeekOffset(), imageDataStartTime);
       rewind();
       setPos(seekOffset);
       updatePos(seekOffset);
+      rewindFlag = false;
     } else {
       MessageBox(getMainHandle(), e.str(), e.type(), MB_OK | MB_ICONERROR);
       return;
index dea26ec3aa1ffb85a77f30d7b9771a5fe599bc62..5c82bc32c34a2887991b74f77c495c2a103ce6d7 100644 (file)
@@ -152,6 +152,10 @@ class RfbPlayer : public RfbProto {
     // Returns true if part of the supplied rect is visible, false otherwise
     bool invalidateBufferRect(const Rect& crect);
 
+    // rewindFlag is a flag wich disable the update of the frame buffer window 
+    // while the rewind is performing.
+    bool rewindFlag;
+
     // Local window state
     HWND mainHwnd;
     HWND frameHwnd;