]> git.saurik.com Git - veency.git/commitdiff
Ported back to 2.x.
authorJay Freeman (saurik) <saurik@saurik.com>
Sun, 12 Jul 2009 13:26:43 +0000 (13:26 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Sun, 12 Jul 2009 13:26:43 +0000 (13:26 +0000)
Tweak.mm
control

index dea38a3b1866deac6f7f1291cda984f5bccf8068..a5e776734785f9eb1c4e98092809a7441957675f 100644 (file)
--- a/Tweak.mm
+++ b/Tweak.mm
@@ -151,6 +151,12 @@ void VNCAlertItem$performUnlockAction(id self, SEL sel) {
 
 static mach_port_t (*GSTakePurpleSystemEventPort)(void);
 static bool PurpleAllocated;
+static bool Two_;
+
+static void FixRecord(GSEventRecord *record) {
+    if (Two_)
+        memmove(&record->windowContextId, &record->windowContextId + 1, sizeof(*record) - (reinterpret_cast<uint8_t *>(&record->windowContextId + 1) - reinterpret_cast<uint8_t *>(record)) + record->size);
+}
 
 static void VNCPointer(int buttons, int x, int y, rfbClientPtr client) {
     x_ = x; y_ = y;
@@ -174,6 +180,7 @@ static void VNCPointer(int buttons, int x, int y, rfbClientPtr client) {
 
         record.timestamp = GSCurrentEventTimestamp();
 
+        FixRecord(&record);
         GSSendSystemEvent(&record);
     }
 
@@ -188,6 +195,7 @@ static void VNCPointer(int buttons, int x, int y, rfbClientPtr client) {
 
         record.timestamp = GSCurrentEventTimestamp();
 
+        FixRecord(&record);
         GSSendSystemEvent(&record);
     }
 
@@ -202,6 +210,7 @@ static void VNCPointer(int buttons, int x, int y, rfbClientPtr client) {
 
         record.timestamp = GSCurrentEventTimestamp();
 
+        FixRecord(&record);
         GSSendSystemEvent(&record);
     }
 
@@ -253,6 +262,7 @@ static void VNCPointer(int buttons, int x, int y, rfbClientPtr client) {
             port = purple;
         }
 
+        FixRecord(&event.record);
         GSSendEvent(&event.record, port);
     }
 
@@ -425,6 +435,8 @@ extern "C" void TweakInitialize() {
         PurpleAllocated = true;
     }
 
+    Two_ = dlsym(RTLD_DEFAULT, "GSEventGetWindowContextId") == NULL;
+
     MSHookFunction(&IOMobileFramebufferSwapSetLayer, &$IOMobileFramebufferSwapSetLayer, &_IOMobileFramebufferSwapSetLayer);
 
     $SBAlertItemsController = objc_getClass("SBAlertItemsController");
diff --git a/control b/control
index 9366e92f3a01a7f95e4625bb2b955e1098821dd6..46771e361784458d546d190ccb0d2dff12f32a76 100644 (file)
--- a/control
+++ b/control
@@ -5,7 +5,7 @@ Priority: optional
 Section: Networking
 Maintainer: Jay Freeman (saurik) <saurik@saurik.com>
 Architecture: iphoneos-arm
-Version: 0.9.2970-1
+Version: 0.9.2971-1
 Description: a VNC /server/ for the iPhone
 Name: Veency
 Depends: mobilesubstrate (>= 0.9.2966-1), libvncserver