Added new option, SendSysKeys, which controls if Alt-Tab, Alt-F4 and Alt-Space should be handled locally, or sent to the server


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@127 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/vncviewer/CViewOptions.cxx b/vncviewer/CViewOptions.cxx
index 13ad7cd..39a1a5c 100644
--- a/vncviewer/CViewOptions.cxx
+++ b/vncviewer/CViewOptions.cxx
@@ -66,6 +66,8 @@
                          "Send pointer (mouse) events to the server.", true);
 static BoolParameter sendKeyEvents("SendKeyEvents",
                          "Send key presses (and releases) to the server.", true);
+static BoolParameter sendSysKeys("SendSysKeys",
+                         "Send system keys (Alt combinations) to the server.", true);
 
 static BoolParameter clientCutText("ClientCutText",
                          "Send clipboard changes to the server.", true);
@@ -110,7 +112,7 @@
 CViewOptions::CViewOptions()
 : useLocalCursor(::useLocalCursor), useDesktopResize(::useDesktopResize),
 autoSelect(::autoSelect), fullColour(::fullColour), fullScreen(::fullScreen),
-shared(::sharedConnection), sendPtrEvents(::sendPtrEvents), sendKeyEvents(::sendKeyEvents),
+shared(::sharedConnection), sendPtrEvents(::sendPtrEvents), sendKeyEvents(::sendKeyEvents), sendSysKeys(::sendSysKeys),
 preferredEncoding(encodingZRLE), clientCutText(::clientCutText), serverCutText(::serverCutText),
 protocol3_3(::protocol3_3), acceptBell(::acceptBell), lowColourLevel(::lowColourLevel),
 pointerEventInterval(ptrEventInterval), emulate3(::emulate3), monitor(::monitor.getData()),
@@ -214,6 +216,8 @@
             sendPtrEvents = atoi(value.buf);
           } else if (stricmp(name.buf, "SendKeyEvents") == 0) {
             sendKeyEvents = atoi(value.buf);
+          } else if (stricmp(name.buf, "SendSysKeys") == 0) {
+            sendSysKeys = atoi(value.buf);
           } else if (stricmp(name.buf, "SendCutText") == 0) {
             clientCutText = atoi(value.buf);
           } else if (stricmp(name.buf, "AcceptCutText") == 0) {
@@ -310,6 +314,7 @@
     fprintf(f, "Shared=%d\n", (int)shared);
     fprintf(f, "SendPtrEvents=%d\n", (int)sendPtrEvents);
     fprintf(f, "SendKeyEvents=%d\n", (int)sendKeyEvents);
+    fprintf(f, "SendSysKeys=%d\n", (int)sendSysKeys);
     fprintf(f, "SendCutText=%d\n", (int)clientCutText);
     fprintf(f, "AcceptCutText=%d\n", (int)serverCutText);
     fprintf(f, "Emulate3=%d\n", (int)emulate3);
@@ -344,6 +349,7 @@
   key.setBool(_T("Shared"), shared);
   key.setBool(_T("SendPointerEvents"), sendPtrEvents);
   key.setBool(_T("SendKeyEvents"), sendKeyEvents);
+  key.setBool(_T("SendSysKeys"), sendSysKeys);
   key.setBool(_T("ClientCutText"), clientCutText);
   key.setBool(_T("ServerCutText"), serverCutText);
   key.setBool(_T("Protocol3.3"), protocol3_3);
@@ -399,6 +405,7 @@
   shared = o.shared;
   sendPtrEvents = o.sendPtrEvents;
   sendKeyEvents = o.sendKeyEvents;
+  sendSysKeys = o.sendSysKeys;
   clientCutText = o.clientCutText;
   serverCutText = o.serverCutText;
   emulate3 = o.emulate3;