From f8de4784c76260d55cd385a19846c1f04a438b14 Mon Sep 17 00:00:00 2001 From: Mykyta Bondarenko <32954580+mykyta-bondarenko@users.noreply.github.com> Date: Wed, 13 May 2020 16:23:16 +0300 Subject: [PATCH 1/3] [mac] do not draw canvas background twice --- Xwt.XamMac/Xwt.Mac/CanvasBackend.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Xwt.XamMac/Xwt.Mac/CanvasBackend.cs b/Xwt.XamMac/Xwt.Mac/CanvasBackend.cs index 66204936b..c2e2d9ede 100644 --- a/Xwt.XamMac/Xwt.Mac/CanvasBackend.cs +++ b/Xwt.XamMac/Xwt.Mac/CanvasBackend.cs @@ -52,6 +52,8 @@ protected override void OnSizeToFit () Widget.SetFrameSize (new CGSize ((nfloat)s.Width, (nfloat)s.Height)); } + public override Xwt.Drawing.Color BackgroundColor { get; set; } + public Rectangle Bounds { get { return new Rectangle (0, 0, view.Frame.Width, view.Frame.Height); From c78836d9af42d26d16699e4a1412675d89cabf55 Mon Sep 17 00:00:00 2001 From: Mykyta Bondarenko <32954580+mykyta-bondarenko@users.noreply.github.com> Date: Wed, 13 May 2020 16:23:59 +0300 Subject: [PATCH 2/3] set FrameBox's bg to its inner canvas --- Xwt/Xwt/FrameBox.cs | 7 ++++++- Xwt/Xwt/Widget.cs | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Xwt/Xwt/FrameBox.cs b/Xwt/Xwt/FrameBox.cs index 666f44b20..4f728c69b 100644 --- a/Xwt/Xwt/FrameBox.cs +++ b/Xwt/Xwt/FrameBox.cs @@ -223,7 +223,12 @@ public FrameBox (Widget content): this () } } - public Color BorderColor { + public override Color BackgroundColor { + get { return canvas.BackgroundColor; } + set { canvas.BackgroundColor = value; } + } + + public Color BorderColor { get { return borderColor; } set { borderColor = value; canvas.QueueDraw (); } } diff --git a/Xwt/Xwt/Widget.cs b/Xwt/Xwt/Widget.cs index 007b38ea3..181833457 100644 --- a/Xwt/Xwt/Widget.cs +++ b/Xwt/Xwt/Widget.cs @@ -764,7 +764,7 @@ public void Hide () /// Gets or sets the background color. /// /// The background color of the widget. - public Color BackgroundColor { + public virtual Color BackgroundColor { get { return Backend.BackgroundColor; } set { Backend.BackgroundColor = value; } } From 6a7b1d0af2f22c431908b21269c999c9b8062bdf Mon Sep 17 00:00:00 2001 From: Mykyta Bondarenko <32954580+mykyta-bondarenko@users.noreply.github.com> Date: Wed, 13 May 2020 16:30:11 +0300 Subject: [PATCH 3/3] added a comment to CanvasBackend BG prop overriding Co-authored-by: Vsevolod Kukol --- Xwt.XamMac/Xwt.Mac/CanvasBackend.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Xwt.XamMac/Xwt.Mac/CanvasBackend.cs b/Xwt.XamMac/Xwt.Mac/CanvasBackend.cs index c2e2d9ede..4eaea468f 100644 --- a/Xwt.XamMac/Xwt.Mac/CanvasBackend.cs +++ b/Xwt.XamMac/Xwt.Mac/CanvasBackend.cs @@ -52,6 +52,7 @@ protected override void OnSizeToFit () Widget.SetFrameSize (new CGSize ((nfloat)s.Width, (nfloat)s.Height)); } + // Skip Layer initialization in base to avoid rendering issues. CanvasView.DrawRect will draw the background. public override Xwt.Drawing.Color BackgroundColor { get; set; } public Rectangle Bounds { @@ -163,4 +164,3 @@ public override bool BecomeFirstResponder() } } } -