diff options
author | Lluis Sanchez <llsan@microsoft.com> | 2018-06-01 13:10:32 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-01 13:10:32 +0300 |
commit | 98e0110a073950aada926a68e1ca96ad843a3fff (patch) | |
tree | b68a86f707bf4a1c9202d889a9f42272f49e1dcd | |
parent | 5dafcae179e3595d45c416b97532322e87b0b64d (diff) |
Revert "Leak fix attempt"
-rw-r--r-- | Xwt/Xwt.Backends/BackendHost.cs | 17 | ||||
-rwxr-xr-x | Xwt/Xwt/Paned.cs | 11 | ||||
-rw-r--r-- | Xwt/Xwt/Toolkit.cs | 2 | ||||
-rw-r--r-- | Xwt/Xwt/WindowFrame.cs | 17 | ||||
-rwxr-xr-x | Xwt/Xwt/XwtComponent.cs | 6 |
5 files changed, 12 insertions, 41 deletions
diff --git a/Xwt/Xwt.Backends/BackendHost.cs b/Xwt/Xwt.Backends/BackendHost.cs index 025ee8ab..14458a6b 100644 --- a/Xwt/Xwt.Backends/BackendHost.cs +++ b/Xwt/Xwt.Backends/BackendHost.cs @@ -59,7 +59,7 @@ namespace Xwt.Backends /// <summary> /// The BackendHost is the link between an Xwt frontend and a toolkit backend. /// </summary> - public class BackendHost: EventHost, IDisposable + public class BackendHost: EventHost { IBackend backend; bool usingCustomBackend; @@ -131,10 +131,8 @@ namespace Xwt.Backends /// </summary> protected virtual void OnBackendCreated () { - foreach (var ev in DefaultEnabledEvents) { - enabledEvents.Add (ev); + foreach (var ev in DefaultEnabledEvents) Backend.EnableEvent (ev); - } } /// <summary> @@ -173,15 +171,12 @@ namespace Xwt.Backends } } - List<object> enabledEvents = new List<object> (); - /// <summary> /// Enables an event with the specified identifier. /// </summary> /// <param name="eventId">Event identifier (must be a valid event enum value).</param> protected override void OnEnableEvent (object eventId) { - enabledEvents.Add (eventId); Backend.EnableEvent (eventId); } @@ -191,16 +186,8 @@ namespace Xwt.Backends /// <param name="eventId">Event identifier (must be a valid event enum value).</param> protected override void OnDisableEvent (object eventId) { - enabledEvents.Remove (eventId); Backend.DisableEvent (eventId); } - - public void Dispose () - { - foreach (var ev in enabledEvents) - Backend.DisableEvent (ev); - enabledEvents.Clear (); - } } } diff --git a/Xwt/Xwt/Paned.cs b/Xwt/Xwt/Paned.cs index 37cc7641..dce339df 100755 --- a/Xwt/Xwt/Paned.cs +++ b/Xwt/Xwt/Paned.cs @@ -44,18 +44,17 @@ namespace Xwt { IPanedBackend b = (IPanedBackend) base.OnCreateBackend (); + // We always want to listen this event because we use it + // to reallocate the children + if (!EngineBackend.HandlesSizeNegotiation) + b.EnableEvent (PanedEvent.PositionChanged); + return b; } protected override void OnBackendCreated () { Backend.Initialize (Parent.direction); - - // We always want to listen this event because we use it - // to reallocate the children - if (!EngineBackend.HandlesSizeNegotiation) - OnEnableEvent (PanedEvent.PositionChanged); - base.OnBackendCreated (); } diff --git a/Xwt/Xwt/Toolkit.cs b/Xwt/Xwt/Toolkit.cs index f087e5b1..4ecd1f44 100644 --- a/Xwt/Xwt/Toolkit.cs +++ b/Xwt/Xwt/Toolkit.cs @@ -830,7 +830,7 @@ namespace Xwt class NativeWindowFrame: WindowFrame { - public NativeWindowFrame (IWindowFrameBackend backend) : base (owned: false) + public NativeWindowFrame (IWindowFrameBackend backend) { BackendHost.SetCustomBackend (backend); } diff --git a/Xwt/Xwt/WindowFrame.cs b/Xwt/Xwt/WindowFrame.cs index 9ae1f4c9..890b9dc4 100644 --- a/Xwt/Xwt/WindowFrame.cs +++ b/Xwt/Xwt/WindowFrame.cs @@ -74,7 +74,6 @@ namespace Xwt bool pendingReallocation; Image icon; WindowFrame transientFor; - protected bool Owned { get; } protected class WindowBackendHost: BackendHost<WindowFrame,IWindowFrameBackend>, IWindowFrameEventSink { @@ -84,8 +83,7 @@ namespace Xwt base.OnBackendCreated (); Parent.location = Backend.Bounds.Location; Parent.size = Backend.Bounds.Size; - if (Parent.Owned) - OnEnableEvent (WindowFrameEvent.BoundsChanged); + Backend.EnableEvent (WindowFrameEvent.BoundsChanged); } public void OnBoundsChanged (Rectangle bounds) @@ -122,12 +120,7 @@ namespace Xwt MapEvent (WindowFrameEvent.Closed, typeof(WindowFrame), "OnClosed"); } - protected WindowFrame (bool owned) - { - Owned = owned; - } - - public WindowFrame () : this (owned: true) + public WindowFrame () { if (!(base.BackendHost is WindowBackendHost)) throw new InvalidOperationException ("CreateBackendHost for WindowFrame did not return a WindowBackendHost instance"); @@ -144,7 +137,7 @@ namespace Xwt // Don't dispose the backend if this object is being finalized // The backend has to handle the finalizing on its own - if (disposing && BackendHost.BackendCreated && Owned) + if (disposing && BackendHost.BackendCreated) Backend.Dispose (); } @@ -410,9 +403,7 @@ namespace Xwt internal virtual Rectangle BackendBounds { get { BackendHost.EnsureBackendLoaded (); - if (Owned) - return new Rectangle (location, size); - return Backend.Bounds; + return new Rectangle (location, size); } set { size = value.Size; diff --git a/Xwt/Xwt/XwtComponent.cs b/Xwt/Xwt/XwtComponent.cs index fa935d12..4b5974e5 100755 --- a/Xwt/Xwt/XwtComponent.cs +++ b/Xwt/Xwt/XwtComponent.cs @@ -74,12 +74,6 @@ namespace Xwt get { return backendHost.Backend; } } - protected override void Dispose(bool release_all) - { - backendHost.Dispose (); - base.Dispose(release_all); - } - /// <summary> /// Gets or sets the name of this component. /// </summary> |