Preserve flip on pasting game when auto-flipView is off
authorH.G.Muller <hgm@hgm-xboard.(none)>
Tue, 1 Mar 2016 20:09:49 +0000 (21:09 +0100)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Tue, 8 Mar 2016 18:29:57 +0000 (19:29 +0100)
Normally starting a new game would restore the orientation as given by
the -flipView option on the command line, which might flip the view even
when -autoFlipView is off. A new game started through Paste Game now
always preserves the current orientation when -autoFlipView is off.

gtk/xboard.c
winboard/wclipbrd.c
xaw/xboard.c

index de5da12..dbb2670 100644 (file)
@@ -1887,7 +1887,7 @@ PasteGameProc ()
 {
     gchar *text=NULL;
     GtkClipboard *cb;
 {
     gchar *text=NULL;
     GtkClipboard *cb;
-    guint len=0;
+    guint len=0; int flip = appData.flipView;
     FILE* f;
 
     // get game from clipboard
     FILE* f;
 
     // get game from clipboard
@@ -1911,7 +1911,9 @@ PasteGameProc ()
     fclose(f);
 
     // load from file
     fclose(f);
 
     // load from file
+    if(!appData.autoFlipView) appData.flipView = flipView;
     LoadGameFromFile(gamePasteFilename, 0, gamePasteFilename, TRUE);
     LoadGameFromFile(gamePasteFilename, 0, gamePasteFilename, TRUE);
+    appData.flipView = flip;
     return;
 }
 
     return;
 }
 
index 4b532de..bcefd4c 100644 (file)
@@ -260,6 +260,7 @@ VOID PasteGameFromString( char * buf )
 {\r
   FILE *f;\r
   size_t len;\r
 {\r
   FILE *f;\r
   size_t len;\r
+  int flip = appData.flipView;\r
   if (!pasteTemp) {\r
     pasteTemp = tempnam(NULL, "wbpt");\r
   }\r
   if (!pasteTemp) {\r
     pasteTemp = tempnam(NULL, "wbpt");\r
   }\r
@@ -276,7 +277,10 @@ VOID PasteGameFromString( char * buf )
     free(buf); /* [AS] */\r
     return;\r
   }\r
     free(buf); /* [AS] */\r
     return;\r
   }\r
+  if(!appData.auto\r
+  if(!appData.autoFlipView) appData.flipView = flipView;\r
   LoadGameFromFile(pasteTemp, 0, "Clipboard", TRUE);\r
   LoadGameFromFile(pasteTemp, 0, "Clipboard", TRUE);\r
+  appData.flipView = flip;\r
   free( buf ); /* [AS] */\r
 }\r
 \r
   free( buf ); /* [AS] */\r
 }\r
 \r
index f1e991d..91d35b7 100644 (file)
@@ -1998,6 +1998,7 @@ PasteGameCB (Widget w, XtPointer client_data, Atom *selection,
             Atom *type, XtPointer value, unsigned long *len, int *format)
 {
   FILE* f;
             Atom *type, XtPointer value, unsigned long *len, int *format)
 {
   FILE* f;
+  int flip = appData.flipView;
   if (value == NULL || *len == 0) {
     return; /* nothing had been selected to copy */
   }
   if (value == NULL || *len == 0) {
     return; /* nothing had been selected to copy */
   }
@@ -2009,7 +2010,9 @@ PasteGameCB (Widget w, XtPointer client_data, Atom *selection,
   fwrite(value, 1, *len, f);
   fclose(f);
   XtFree(value);
   fwrite(value, 1, *len, f);
   fclose(f);
   XtFree(value);
+  if(!appData.autoFlipView) appData.flipView = flipView;
   LoadGameFromFile(gamePasteFilename, 0, gamePasteFilename, TRUE);
   LoadGameFromFile(gamePasteFilename, 0, gamePasteFilename, TRUE);
+  appData.flipView = flip;
 }
 
 /* called when Paste Game button is pressed,
 }
 
 /* called when Paste Game button is pressed,