From c30bdc32e5ed3f0d9edc897e15e52823b647e71e Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 2 Dec 2014 18:40:09 +0100 Subject: [PATCH] Cache GTK window client size. --- Gtk/Perspex.Gtk/WindowImpl.cs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Gtk/Perspex.Gtk/WindowImpl.cs b/Gtk/Perspex.Gtk/WindowImpl.cs index 87f5847256..2e435740ee 100644 --- a/Gtk/Perspex.Gtk/WindowImpl.cs +++ b/Gtk/Perspex.Gtk/WindowImpl.cs @@ -14,10 +14,10 @@ namespace Perspex.Gtk public class WindowImpl : Gtk.Window, IWindowImpl { - private Window owner; - private IPlatformHandle windowHandle; + private Size clientSize; + public WindowImpl() : base(Gtk.WindowType.Toplevel) { @@ -27,13 +27,7 @@ namespace Perspex.Gtk public Size ClientSize { - get - { - int width; - int height; - this.GetSize(out width, out height); - return new Size(width, height); - } + get { return this.clientSize; } } IPlatformHandle IWindowImpl.Handle @@ -58,7 +52,6 @@ namespace Perspex.Gtk public void SetOwner(Window window) { - this.owner = window; } public void SetTitle(string title) @@ -68,7 +61,14 @@ namespace Perspex.Gtk protected override bool OnConfigureEvent(Gdk.EventConfigure evnt) { - this.Resized(new Size(evnt.Width, evnt.Height)); + var newSize = new Size(evnt.Width, evnt.Height); + + if (newSize != this.clientSize) + { + this.clientSize = newSize; + this.Resized(clientSize); + } + return true; }