Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > 1ebc4b5c9e52e0e526964eca83f7f8be > files > 3

zhcon-0.2.6-23.fc18.src.rpm

--- ./src/zhcon.cpp.keyswitch	2008-07-14 16:17:53.000000000 +1000
+++ ./src/zhcon.cpp	2008-07-14 16:20:16.000000000 +1000
@@ -132,6 +132,10 @@
     //the InitXXX sequence is important,do not change
     //unless you know what you are doing
     InitTty();
+
+    /* Set to K_XLATE (ascii) */
+    ioctl(0, KDSKBMODE, K_XLATE);
+
     // set blank line height, must before init font
     InitGraphDev(f);
     GraphMode();
--- ./src/inputmanager.cpp.keyswitch	2008-07-14 16:14:10.000000000 +1000
+++ ./src/inputmanager.cpp	2008-07-14 16:23:45.000000000 +1000
@@ -101,9 +101,12 @@
     
     struct timeval tv;
     int rcved, shift;
+    bool ctrlShiftPressed=false;
 
     shift = GetShiftState();
-    if (shift != 0) {
+    if (shift ==5){
+        /* Ctrl-Shift Pressed */
+        ctrlShiftPressed=true;
         //printf("Shift stat %d\r\n", s);
     }
 
@@ -120,7 +123,7 @@
     tv.tv_sec = 0;
     tv.tv_usec = 100000;                  /* 0.1 sec */
     rcved = select(FD_SETSIZE, &mFdSet, NULL, NULL, &tv);
-    if (rcved <= 0)
+    if (rcved <= 0 && !ctrlShiftPressed)
         return;
 
 #ifdef HAVE_GPM_H
@@ -154,7 +157,9 @@
                 mOutputRead = 0;
             }
         }
-    }
+     }else if (ctrlShiftPressed){
+         DoCtrlShift();
+     }
 
    if (FD_ISSET(mTtyFd, &mFdSet)) {
         mInputRead += read(mTtyFd, mInputBuf+mInputRead, BUFSIZE-mInputRead);