Don't parse FLTK arguments using Fl::arg; handle -display as other options

Fl::arg accepts several arguments which we are not documenting. Also,
it accepts a -geometry argument, which clashes with our own -geometry
option.
diff --git a/vncviewer/parameters.cxx b/vncviewer/parameters.cxx
index 39a7f07..d24e5bc 100644
--- a/vncviewer/parameters.cxx
+++ b/vncviewer/parameters.cxx
@@ -134,6 +134,9 @@
                           "Send the primary selection to the "
                           "server as well as the clipboard selection",
                           true);
+StringParameter display("display",
+			"Specifies the X display on which the VNC viewer window should appear.",
+			"");
 #endif
 
 StringParameter menuKey("MenuKey", "The key which brings up the popup menu",
diff --git a/vncviewer/parameters.h b/vncviewer/parameters.h
index 9ce56b9..2ccd928 100644
--- a/vncviewer/parameters.h
+++ b/vncviewer/parameters.h
@@ -55,6 +55,7 @@
 extern rfb::BoolParameter sendClipboard;
 #if !defined(WIN32) && !defined(__APPLE__)
 extern rfb::BoolParameter sendPrimary;
+extern rfb::StringParameter display;
 #endif
 
 extern rfb::StringParameter menuKey;
diff --git a/vncviewer/vncviewer.cxx b/vncviewer/vncviewer.cxx
index 426be27..bd3a562 100644
--- a/vncviewer/vncviewer.cxx
+++ b/vncviewer/vncviewer.cxx
@@ -495,9 +495,6 @@
   }
 
   for (int i = 1; i < argc;) {
-    if (Fl::arg(argc, argv, i))
-      continue;
-
     if (Configuration::setParam(argv[i])) {
       i++;
       continue;
@@ -522,6 +519,9 @@
   mkvnchomedir();
 
 #if !defined(WIN32) && !defined(__APPLE__)
+  if (strcmp(display, "") != 0) {
+    Fl::display(display);
+  }
   fl_open_display();
   XkbSetDetectableAutoRepeat(fl_display, True, NULL);
 #endif