diff --git a/Cairo/Perspex.Cairo/Media/DrawingContext.cs b/Cairo/Perspex.Cairo/Media/DrawingContext.cs index d5838ba962..72cf0c0340 100644 --- a/Cairo/Perspex.Cairo/Media/DrawingContext.cs +++ b/Cairo/Perspex.Cairo/Media/DrawingContext.cs @@ -51,7 +51,7 @@ namespace Perspex.Cairo.Media this.Drawable = drawable; this.context = Gdk.CairoHelper.Create(drawable); this.CurrentTransform = Matrix.Identity; - } + } public Matrix CurrentTransform { @@ -192,7 +192,7 @@ namespace Perspex.Cairo.Media { var layout = ((FormattedTextImpl)text.PlatformImpl).Layout; this.SetBrush(foreground); - + this.context.MoveTo(origin.X, origin.Y); Pango.CairoHelper.ShowLayout(this.context, layout); } diff --git a/Cairo/Perspex.Cairo/Media/FormattedTextImpl.cs b/Cairo/Perspex.Cairo/Media/FormattedTextImpl.cs index b602f1abf3..3b1054cdd0 100644 --- a/Cairo/Perspex.Cairo/Media/FormattedTextImpl.cs +++ b/Cairo/Perspex.Cairo/Media/FormattedTextImpl.cs @@ -37,15 +37,17 @@ namespace Perspex.Cairo.Media this.Layout.Alignment = textAlignment.ToCairo(); } + private Size size; public Size Constraint { get { - return new Size(this.Layout.Width, double.PositiveInfinity); + return size; } set { + this.size = value; this.Layout.Width = Pango.Units.FromDouble(value.Width); } } diff --git a/Gtk/Perspex.Gtk/WindowImpl.cs b/Gtk/Perspex.Gtk/WindowImpl.cs index ed70b6168e..0bef9f7c45 100644 --- a/Gtk/Perspex.Gtk/WindowImpl.cs +++ b/Gtk/Perspex.Gtk/WindowImpl.cs @@ -161,7 +161,11 @@ namespace Perspex.Gtk protected override bool OnExposeEvent(Gdk.EventExpose evnt) { - this.Paint(evnt.Area.ToPerspex(), this.GetHandle(evnt.Window)); + if (evnt.Type == Gdk.EventType.Expose) + { + this.Paint(evnt.Area.ToPerspex(), this.GetHandle(evnt.Window)); + } + return true; }