From 38f2b2a114ee614bef1f1a885c49162dd24cbc8b Mon Sep 17 00:00:00 2001
From: Mike Kestner <mkestner@gmail.com>
Date: Mon, 12 Dec 2005 16:08:26 +0000
Subject: [PATCH] 2005-12-12  Mike Kestner  <mkestner@novell.com>

	* gdk/EventClient.cs : fix native long marshaling issue. Thanks to
	 ed@catmur.co.uk for the bug report and investigation.
	[Fixes #76740]

svn path=/trunk/gtk-sharp/; revision=54244
---
 ChangeLog          | 6 ++++++
 gdk/EventClient.cs | 4 +++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 2c89c5aa8..b9b602448 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-12  Mike Kestner  <mkestner@novell.com>
+
+	* gdk/EventClient.cs : fix native long marshaling issue. Thanks to 
+	 ed@catmur.co.uk for the bug report and investigation.
+	[Fixes #76740]
+
 2005-12-12  Itamar Rogel  <chastamar@yahoo.com>
 
 	* NodeView.cs : add default ctor and NodeStore setter.
diff --git a/gdk/EventClient.cs b/gdk/EventClient.cs
index 3cea53766..c8efb5c62 100644
--- a/gdk/EventClient.cs
+++ b/gdk/EventClient.cs
@@ -61,8 +61,10 @@ namespace Gdk {
 					Marshal.Copy (s, 0, gtksharp_gdk_event_client_get_data (Handle), 10);
 					return s;
 				case 32:
+					IntPtr data_ptr = gtksharp_gdk_event_client_get_data (Handle);
 					long[] l = new long [5];
-					Marshal.Copy (l, 0, gtksharp_gdk_event_client_get_data (Handle), 5);
+					for (int i = 0; i < 5; i++)
+						l [i] = (long) Marshal.ReadIntPtr (data_ptr, i);
 					return l;
 				default:
 					throw new Exception ("Invalid Data Format: " + DataFormat);