Procházet zdrojové kódy

After choice, pos to end of panel.

Steve Thielemann před 2 roky
rodič
revize
3fbc1628a5
2 změnil soubory, kde provedl 4 přidání a 11 odebrání
  1. 2 0
      door/menu.go
  2. 2 11
      door/panel.go

+ 2 - 0
door/menu.go

@@ -132,6 +132,8 @@ func (m *Menu) Choose(d *Door) int {
 			}
 			if m.Activated != nil {
 				m.Activated(m.Chosen, d)
+				// Reposition to the end of the menu
+				d.Write(m.GotoEnd() + blank)
 			}
 		}
 

+ 2 - 11
door/panel.go

@@ -235,17 +235,8 @@ func (p *Panel) UpdateLine(index int) string {
 
 // Position Cursor at the "end" of the panel
 func (p *Panel) GotoEnd() string {
-	var row, col int
-	row = p.Y
-	col = p.X
-	if p.Style > 0 {
-		row++
-		col += 2
-	}
-	row += len(p.Lines)
-	col += p.Width
-
-	return Goto(col, row)
+	rx, by := p.RightBottomPos()
+	return Goto(rx, by)
 }
 
 // Is the top line of this style a single line?