From 88f3d05a19806e442aafc3e37d75fcebdd76a4d7 Mon Sep 17 00:00:00 2001 From: Tig Date: Mon, 25 Nov 2024 20:53:20 -0700 Subject: [PATCH] Fixed more cases --- CommunityToolkitExample/LoginView.cs | 1 + Terminal.Gui/Application/Application.Keyboard.cs | 2 +- Terminal.Gui/Application/Application.Run.cs | 1 - Terminal.Gui/Application/Application.Screen.cs | 2 +- Terminal.Gui/View/View.cs | 9 ++++++++- Terminal.Gui/Views/Menu/Menu.cs | 3 +-- Terminal.Gui/Views/Menu/MenuBar.cs | 2 +- 7 files changed, 13 insertions(+), 7 deletions(-) diff --git a/CommunityToolkitExample/LoginView.cs b/CommunityToolkitExample/LoginView.cs index 7f8fbe53d..726ab009f 100644 --- a/CommunityToolkitExample/LoginView.cs +++ b/CommunityToolkitExample/LoginView.cs @@ -59,6 +59,7 @@ internal partial class LoginView : IRecipient> } } SetText(); + // BUGBUG: This should not be needed: Application.LayoutAndDraw (); } diff --git a/Terminal.Gui/Application/Application.Keyboard.cs b/Terminal.Gui/Application/Application.Keyboard.cs index 97b566166..16d167f34 100644 --- a/Terminal.Gui/Application/Application.Keyboard.cs +++ b/Terminal.Gui/Application/Application.Keyboard.cs @@ -205,7 +205,7 @@ public static partial class Application // Keyboard handling Command.Refresh, static () => { - LayoutAndDraw (); + LayoutAndDraw (true); return true; } diff --git a/Terminal.Gui/Application/Application.Run.cs b/Terminal.Gui/Application/Application.Run.cs index 2a91ac8df..5f6b5ddba 100644 --- a/Terminal.Gui/Application/Application.Run.cs +++ b/Terminal.Gui/Application/Application.Run.cs @@ -508,7 +508,6 @@ public static partial class Application // Run (Begin, Run, End, Stop) if (ClearScreenNextIteration) { forceDraw = true; - ClearScreenNextIteration = false; } if (forceDraw) { diff --git a/Terminal.Gui/Application/Application.Screen.cs b/Terminal.Gui/Application/Application.Screen.cs index 5a8f68407..5bd74fb1a 100644 --- a/Terminal.Gui/Application/Application.Screen.cs +++ b/Terminal.Gui/Application/Application.Screen.cs @@ -63,7 +63,7 @@ public static partial class Application // Screen related stuff t.SetNeedsLayout (); } - LayoutAndDraw (); + LayoutAndDraw (true); return true; } diff --git a/Terminal.Gui/View/View.cs b/Terminal.Gui/View/View.cs index 27fcb065a..e1470d7b1 100644 --- a/Terminal.Gui/View/View.cs +++ b/Terminal.Gui/View/View.cs @@ -369,7 +369,14 @@ public partial class View : IDisposable, ISupportInitializeNotification SetNeedsLayout (); SuperView?.SetNeedsLayout (); SetNeedsDraw (); - SuperView?.SetNeedsDraw (); + if (SuperView is { }) + { + SuperView?.SetNeedsDraw (); + } + else + { + Application.ClearScreenNextIteration = true; + } } } diff --git a/Terminal.Gui/Views/Menu/Menu.cs b/Terminal.Gui/Views/Menu/Menu.cs index fdfab4d98..ac3d61797 100644 --- a/Terminal.Gui/Views/Menu/Menu.cs +++ b/Terminal.Gui/Views/Menu/Menu.cs @@ -608,8 +608,7 @@ internal sealed class Menu : View Application.UngrabMouse (); _host.CloseAllMenus (); - Application.Driver!.ClearContents (); - Application.LayoutAndDraw (); + Application.LayoutAndDraw (true); _host.Run (action); } diff --git a/Terminal.Gui/Views/Menu/MenuBar.cs b/Terminal.Gui/Views/Menu/MenuBar.cs index 7bba8b714..3816a1a29 100644 --- a/Terminal.Gui/Views/Menu/MenuBar.cs +++ b/Terminal.Gui/Views/Menu/MenuBar.cs @@ -1117,7 +1117,7 @@ public class MenuBar : View, IDesignable Application.UngrabMouse (); CloseAllMenus (); - Application.LayoutAndDraw (); + Application.LayoutAndDraw (true); _openedByAltKey = true; return Run (item.Action);