Send cursor pseudo-encodings in order of preference

Some servers respect the ordering of pseudo-encodings as well, so
make sure we list the best one first.
diff --git a/common/rfb/CMsgWriter.cxx b/common/rfb/CMsgWriter.cxx
index 8576d8f..fa78404 100644
--- a/common/rfb/CMsgWriter.cxx
+++ b/common/rfb/CMsgWriter.cxx
@@ -72,9 +72,9 @@
   rdr::U32 encodings[encodingMax+3];
 
   if (cp->supportsLocalCursor) {
-    encodings[nEncodings++] = pseudoEncodingXCursor;
-    encodings[nEncodings++] = pseudoEncodingCursor;
     encodings[nEncodings++] = pseudoEncodingCursorWithAlpha;
+    encodings[nEncodings++] = pseudoEncodingCursor;
+    encodings[nEncodings++] = pseudoEncodingXCursor;
   }
   if (cp->supportsDesktopResize)
     encodings[nEncodings++] = pseudoEncodingDesktopSize;
diff --git a/java/com/tigervnc/rfb/CMsgWriter.java b/java/com/tigervnc/rfb/CMsgWriter.java
index d99f26c..ea2b7c9 100644
--- a/java/com/tigervnc/rfb/CMsgWriter.java
+++ b/java/com/tigervnc/rfb/CMsgWriter.java
@@ -65,10 +65,10 @@
     int[] encodings = new int[Encodings.encodingMax+3];
 
     if (cp.supportsLocalCursor) {
-      encodings[nEncodings++] = Encodings.pseudoEncodingXCursor;
-      encodings[nEncodings++] = Encodings.pseudoEncodingCursor;
       if (cp.supportsLocalCursorWithAlpha)
         encodings[nEncodings++] = Encodings.pseudoEncodingCursorWithAlpha;
+      encodings[nEncodings++] = Encodings.pseudoEncodingCursor;
+      encodings[nEncodings++] = Encodings.pseudoEncodingXCursor;
     }
     if (cp.supportsDesktopResize)
       encodings[nEncodings++] = Encodings.pseudoEncodingDesktopSize;