Author: toshok
Date: 2007-07-12 13:50:39 -0400 (Thu, 12 Jul 2007)
New Revision: 81888
Modified:
trunk/olive/class/agclr/Mono/Events.cs
trunk/olive/class/agclr/System.Windows.Media.Animation/Storyboard.cs
Log:
remove the CrossDomainProxy stuff. lupus patch is required, so we can just use
UnmanagedEventHandlers for all this
Modified: trunk/olive/class/agclr/Mono/Events.cs
===================================================================
--- trunk/olive/class/agclr/Mono/Events.cs 2007-07-12 17:49:44 UTC (rev
81887)
+++ trunk/olive/class/agclr/Mono/Events.cs 2007-07-12 17:50:39 UTC (rev
81888)
@@ -40,76 +40,18 @@
public double y;
}
- [Serializable]
- class CrossDomainProxy {
- public CrossDomainProxy (AppDomain domain,
UnmanagedEventHandler handler)
- {
- //Console.WriteLine ("Created proxy in domain {0}",
domain.FriendlyName);
- this.domain = domain;
- this.handler = handler;
- _wrapper = new UnmanagedEventHandler (wrapper);
- }
-
-
- public UnmanagedEventHandler Wrapper {
- get { return _wrapper; }
- }
-
- public void wrapper (IntPtr target, IntPtr calldata, IntPtr
closure) {
- //Console.WriteLine ("wrapper called in domain {0}",
AppDomain.CurrentDomain.FriendlyName);
- //Console.WriteLine (" + domain = {0}",
domain.FriendlyName);
- this.target = target;
- this.calldata = calldata;
- this.closure = closure;
- domain.DoCallBack (new CrossAppDomainDelegate
(call_in_target_domain));
- }
-
- public void call_in_target_domain ()
- {
- //Console.WriteLine ("call_in_target_domain called in
domain {0}", AppDomain.CurrentDomain.FriendlyName);
- if (AppDomain.CurrentDomain != domain)
- throw new Exception ("Cross domain call
failed");
- handler (target, calldata, closure);
- }
-
- public AppDomain domain;
- public UnmanagedEventHandler handler;
- public UnmanagedEventHandler _wrapper;
-
- public IntPtr target;
- public IntPtr calldata;
- public IntPtr closure;
- }
-
-
internal class Events {
- static Events() {
- AppDomain d = AppDomain.CurrentDomain;
- mouse_motion = new CrossDomainProxy (d, new
UnmanagedEventHandler (mouse_motion_notify_callback));
- mouse_button_down = new CrossDomainProxy (d, new
UnmanagedEventHandler (mouse_button_down_callback));
- mouse_button_up = new CrossDomainProxy (d, new
UnmanagedEventHandler (mouse_button_up_callback));
- mouse_enter = new CrossDomainProxy (d, new
UnmanagedEventHandler (mouse_enter_callback));
- key_down = new CrossDomainProxy (d, new
UnmanagedEventHandler (key_down_callback));
- key_up = new CrossDomainProxy (d, new
UnmanagedEventHandler (key_up_callback));
- got_focus = new CrossDomainProxy (d, new
UnmanagedEventHandler (got_focus_callback));
- lost_focus = new CrossDomainProxy (d, new
UnmanagedEventHandler (lost_focus_callback));
- loaded = new CrossDomainProxy (d, new
UnmanagedEventHandler (loaded_callback));
- mouse_leave = new CrossDomainProxy (d, new
UnmanagedEventHandler (mouse_leave_callback));
- }
+ internal static UnmanagedEventHandler mouse_motion = new
UnmanagedEventHandler (mouse_motion_notify_callback);
+ internal static UnmanagedEventHandler mouse_button_down = new
UnmanagedEventHandler (mouse_button_down_callback);
+ internal static UnmanagedEventHandler mouse_button_up = new
UnmanagedEventHandler (mouse_button_up_callback);
+ internal static UnmanagedEventHandler mouse_enter = new
UnmanagedEventHandler (mouse_enter_callback);
+ internal static UnmanagedEventHandler key_down = new
UnmanagedEventHandler (key_down_callback);
+ internal static UnmanagedEventHandler key_up = new
UnmanagedEventHandler (key_up_callback);
+ internal static UnmanagedEventHandler got_focus = new
UnmanagedEventHandler (got_focus_callback);
+ internal static UnmanagedEventHandler lost_focus = new
UnmanagedEventHandler (lost_focus_callback);
+ internal static UnmanagedEventHandler loaded = new
UnmanagedEventHandler (loaded_callback);
+ internal static UnmanagedEventHandler mouse_leave = new
UnmanagedEventHandler (mouse_leave_callback);
- internal static AppDomain domain = AppDomain.CurrentDomain;
-
- internal static CrossDomainProxy mouse_motion;
- internal static CrossDomainProxy mouse_button_down;
- internal static CrossDomainProxy mouse_button_up;
- internal static CrossDomainProxy mouse_enter;
- internal static CrossDomainProxy key_down;
- internal static CrossDomainProxy key_up;
- internal static CrossDomainProxy got_focus;
- internal static CrossDomainProxy lost_focus;
- internal static CrossDomainProxy loaded;
- internal static CrossDomainProxy mouse_leave;
-
static PlainEvent surface_resized = new PlainEvent
(surface_resized_callback);
static void got_focus_callback (IntPtr target, IntPtr calldata,
IntPtr closure)
@@ -191,14 +133,14 @@
NativeMethods.surface_register_events (surface,
surface_resized);
}
- internal static void AddHandler (DependencyObject obj, string
eventName, CrossDomainProxy handler)
+ internal static void AddHandler (DependencyObject obj, string
eventName, UnmanagedEventHandler handler)
{
- NativeMethods.dependency_object_add_event_handler
(obj.native, eventName, handler.Wrapper, obj.GCHandle);
+ NativeMethods.dependency_object_add_event_handler
(obj.native, eventName, handler, obj.GCHandle);
}
- internal static void RemoveHandler (DependencyObject obj,
string eventName, CrossDomainProxy handler)
+ internal static void RemoveHandler (DependencyObject obj,
string eventName, UnmanagedEventHandler handler)
{
- NativeMethods.dependency_object_remove_event_handler
(obj.native, eventName, handler.Wrapper, obj.GCHandle);
+ NativeMethods.dependency_object_remove_event_handler
(obj.native, eventName, handler, obj.GCHandle);
}
}
}
Modified: trunk/olive/class/agclr/System.Windows.Media.Animation/Storyboard.cs
===================================================================
--- trunk/olive/class/agclr/System.Windows.Media.Animation/Storyboard.cs
2007-07-12 17:49:44 UTC (rev 81887)
+++ trunk/olive/class/agclr/System.Windows.Media.Animation/Storyboard.cs
2007-07-12 17:50:39 UTC (rev 81888)
@@ -41,8 +41,6 @@
{
TargetPropertyProperty = DependencyProperty.Lookup
(Kind.STORYBOARD, "TargetProperty", typeof (string));
TargetNameProperty = DependencyProperty.Lookup
(Kind.STORYBOARD, "TargetName", typeof (string));
-
- completed_proxy = new CrossDomainProxy
(AppDomain.CurrentDomain, new UnmanagedEventHandler (UnmanagedCompleted));
}
internal Storyboard (IntPtr raw) : base (raw)
@@ -95,7 +93,7 @@
}
}
- static CrossDomainProxy completed_proxy;
+ static UnmanagedEventHandler completed_proxy = new
UnmanagedEventHandler (UnmanagedCompleted);
private static void UnmanagedCompleted (IntPtr target, IntPtr
calldata, IntPtr closure)
{
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches