Browse Source

Fixed menu code that was using View.Move inproperly

Tig 1 year ago
parent
commit
0cde0e17ea
2 changed files with 5 additions and 7 deletions
  1. 4 2
      Terminal.Gui/Views/Menu/Menu.cs
  2. 1 5
      Terminal.Gui/Views/Menu/MenuBar.cs

+ 4 - 2
Terminal.Gui/Views/Menu/Menu.cs

@@ -790,7 +790,8 @@ internal sealed class Menu : View
 
             if (item is null && BorderStyle != LineStyle.None)
             {
-                Move (-1, i);
+                var s = ViewportToScreen (new (-1, i, 0, 0));
+                Driver.Move (s.X, s.Y);
                 Driver.AddRune (Glyphs.LeftTee);
             }
             else if (Frame.X < Driver.Cols)
@@ -837,7 +838,8 @@ internal sealed class Menu : View
             {
                 if (BorderStyle != LineStyle.None && SuperView?.Frame.Right - Frame.X > Frame.Width)
                 {
-                    Move (Frame.Width - 2, i);
+                    var s = ViewportToScreen (new (Frame.Width - 2, i, 0, 0));
+                    Driver.Move (s.X, s.Y);
                     Driver.AddRune (Glyphs.RightTee);
                 }
 

+ 1 - 5
Terminal.Gui/Views/Menu/MenuBar.cs

@@ -471,13 +471,9 @@ public class MenuBar : View
     /// <inheritdoc/>
     public override void OnDrawContent (Rectangle viewport)
     {
-        Move (0, 0);
         Driver.SetAttribute (GetNormalColor ());
 
-        for (var i = 0; i < Frame.Width; i++)
-        {
-            Driver.AddRune ((Rune)' ');
-        }
+        Clear ();
 
         Move (1, 0);
         var pos = 0;