Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/xwt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <llsan@microsoft.com>2018-06-01 13:11:39 +0300
committerGitHub <noreply@github.com>2018-06-01 13:11:39 +0300
commit0b65fe756159f48df543bd32842e29e92d94fdb3 (patch)
treeb68a86f707bf4a1c9202d889a9f42272f49e1dcd
parent5dafcae179e3595d45c416b97532322e87b0b64d (diff)
parent98e0110a073950aada926a68e1ca96ad843a3fff (diff)
Merge pull request #834 from mono/revert-760-leak-fix-attempt
Revert "Leak fix attempt"
-rw-r--r--Xwt/Xwt.Backends/BackendHost.cs17
-rwxr-xr-xXwt/Xwt/Paned.cs11
-rw-r--r--Xwt/Xwt/Toolkit.cs2
-rw-r--r--Xwt/Xwt/WindowFrame.cs17
-rwxr-xr-xXwt/Xwt/XwtComponent.cs6
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>