mirror of https://github.com/jroimartin/gocui.git
Do not show cursor when it's out of screen
This commit is contained in:
parent
a09a166064
commit
248e4f4437
25
gui.go
25
gui.go
|
@ -420,16 +420,25 @@ func (g *Gui) drawTitle(v *View) error {
|
||||||
func (g *Gui) draw(v *View) error {
|
func (g *Gui) draw(v *View) error {
|
||||||
if g.Cursor {
|
if g.Cursor {
|
||||||
if v := g.currentView; v != nil {
|
if v := g.currentView; v != nil {
|
||||||
maxX, maxY := v.Size()
|
vMaxX, vMaxY := v.Size()
|
||||||
cx, cy := v.cx, v.cy
|
if v.cx < 0 {
|
||||||
if v.cx >= maxX {
|
v.cx = 0
|
||||||
cx = maxX - 1
|
} else if v.cx >= vMaxX {
|
||||||
|
v.cx = vMaxX - 1
|
||||||
}
|
}
|
||||||
if v.cy >= maxY {
|
if v.cy < 0 {
|
||||||
cy = maxY - 1
|
v.cy = 0
|
||||||
|
} else if v.cy >= vMaxY {
|
||||||
|
v.cy = vMaxY - 1
|
||||||
|
}
|
||||||
|
|
||||||
|
gMaxX, gMaxY := g.Size()
|
||||||
|
cx, cy := v.x0+v.cx+1, v.y0+v.cy+1
|
||||||
|
if cx >= 0 && cx < gMaxX && cy >= 0 && cy < gMaxY {
|
||||||
|
termbox.SetCursor(cx, cy)
|
||||||
|
} else {
|
||||||
|
termbox.HideCursor()
|
||||||
}
|
}
|
||||||
v.cx, v.cy = cx, cy
|
|
||||||
termbox.SetCursor(v.x0+v.cx+1, v.y0+v.cy+1)
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
termbox.HideCursor()
|
termbox.HideCursor()
|
||||||
|
|
Loading…
Reference in New Issue