Close the session playback if the user presses the cancel button
on ChoosePixelFormatDialog dialog.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@241 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx
index b46b2f3..d1adc55 100644
--- a/rfbplayer/rfbplayer.cxx
+++ b/rfbplayer/rfbplayer.cxx
@@ -840,6 +840,12 @@
       else stopped = false;
       updatePos(seekOffset);
       rewindFlag = false;
+      return;
+    } 
+    // It's a special exception which is used to terminate the playback
+    if (strcmp(e.str(), "[TERMINATE]") == 0) {
+      sessionTerminateThread *terminate = new sessionTerminateThread(this);
+      terminate->start();
     } else {
       MessageBox(getMainHandle(), e.str(), e.type(), MB_OK | MB_ICONERROR);
       return;
@@ -866,6 +872,9 @@
     ChoosePixelFormatDialog choosePixelFormatDialog(pixelFormat);
     if (choosePixelFormatDialog.showDialog()) {
       pixelFormat = choosePixelFormatDialog.getPF();
+    } else {
+      is->pausePlayback();
+      throw rdr::Exception("[TERMINATE]");
     }
   } else {
     pixelFormat = options.pixelFormat;