keep cleaning the 'msg' stdout handling code
This commit is contained in:
parent
2c07da350a
commit
bff0943dc5
|
@ -84,54 +84,49 @@ func mouseMove(g *gocui.Gui) {
|
|||
return
|
||||
}
|
||||
|
||||
// if me.mouse.globalMouseDown {
|
||||
// log.Info("msgMouseDown == true")
|
||||
// plugin will segfault if you don't keep this inside a check for msgMouseDown
|
||||
// don't move this code out of here
|
||||
var found bool = false
|
||||
// drag whatever was set to drag
|
||||
if me.mouse.currentDrag != nil {
|
||||
// me.mouse.currentDrag.dumpWidget(fmt.Sprintf("MM (%3d,%3d)", w, h))
|
||||
me.mouse.currentDrag.moveNew()
|
||||
return
|
||||
}
|
||||
// new function that is smarter
|
||||
if tk := findWindowUnderMouse(); tk != nil {
|
||||
tk.setAsDragging()
|
||||
return
|
||||
}
|
||||
// first look for windows
|
||||
for _, tk := range findByXY(w, h) {
|
||||
if tk.node.WidgetType == widget.Window {
|
||||
tk.setAsDragging()
|
||||
return
|
||||
}
|
||||
}
|
||||
log.Info(fmt.Sprintf("gui toolkit error. nothing to drag at (%d,%d)", w, h))
|
||||
return
|
||||
|
||||
// now look for the STDOUT window
|
||||
for _, tk := range findByXY(w, h) {
|
||||
if tk.node.WidgetType == widget.Flag {
|
||||
// if me.mouse.globalMouseDown {
|
||||
// log.Info("msgMouseDown == true")
|
||||
// plugin will segfault if you don't keep this inside a check for msgMouseDown
|
||||
// don't move this code out of here
|
||||
/*
|
||||
// new function that is smarter
|
||||
if tk := findWindowUnderMouse(); tk != nil {
|
||||
tk.setAsDragging()
|
||||
return
|
||||
}
|
||||
}
|
||||
for _, tk := range findByXY(w, h) {
|
||||
if tk.node.WidgetType == widget.Stdout {
|
||||
tk.setAsDragging()
|
||||
// tk.moveNew()
|
||||
return
|
||||
// first look for windows
|
||||
for _, tk := range findByXY(w, h) {
|
||||
if tk.node.WidgetType == widget.Window {
|
||||
tk.setAsDragging()
|
||||
return
|
||||
}
|
||||
}
|
||||
/*
|
||||
if tk.node.WidgetType == widget.Label {
|
||||
me.mouse.currentDrag = tk
|
||||
|
||||
// now look for the STDOUT window
|
||||
for _, tk := range findByXY(w, h) {
|
||||
if tk.node.WidgetType == widget.Flag {
|
||||
tk.setAsDragging()
|
||||
return
|
||||
}
|
||||
}
|
||||
for _, tk := range findByXY(w, h) {
|
||||
if tk.node.WidgetType == widget.Stdout {
|
||||
tk.setAsDragging()
|
||||
// tk.moveNew()
|
||||
return
|
||||
}
|
||||
*/
|
||||
found = true
|
||||
}
|
||||
if !found {
|
||||
log.Info(fmt.Sprintf("findByXY() empty. nothing to move at (%d,%d)", w, h))
|
||||
}
|
||||
found = true
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
func (tk *guiWidget) setAsDragging() {
|
||||
|
|
|
@ -156,32 +156,42 @@ func (w *guiWidget) Write(p []byte) (n int, err error) {
|
|||
return len(p), nil
|
||||
}
|
||||
if tk.v == nil {
|
||||
// optionally write the output to /tmp
|
||||
s := fmt.Sprint(string(p))
|
||||
s = strings.TrimSuffix(s, "\n")
|
||||
fmt.Fprintln(outf, s)
|
||||
v, _ := me.baseGui.View("msg")
|
||||
if v != nil {
|
||||
// fmt.Fprintln(outf, "found msg")
|
||||
tk.v = v
|
||||
}
|
||||
} else {
|
||||
// display the output in the gocui window
|
||||
var cur []string
|
||||
// chop off the last lines in the buffer
|
||||
chop := len(me.stdout.outputS) - (me.stdout.h - 1)
|
||||
if chop < 0 {
|
||||
chop = 0
|
||||
}
|
||||
if len(me.stdout.outputS) > chop {
|
||||
cur = append(cur, me.stdout.outputS[chop:]...)
|
||||
} else {
|
||||
cur = append(cur, me.stdout.outputS...)
|
||||
}
|
||||
slices.Reverse(cur)
|
||||
tk.v.Clear()
|
||||
fmt.Fprintln(tk.v, strings.Join(cur, "\n"))
|
||||
return len(p), nil
|
||||
}
|
||||
tk.refreshStdout()
|
||||
/*
|
||||
// optionally write the output to /tmp
|
||||
s := fmt.Sprint(string(p))
|
||||
s = strings.TrimSuffix(s, "\n")
|
||||
fmt.Fprintln(outf, s)
|
||||
v, _ := me.baseGui.View("msg")
|
||||
if v != nil {
|
||||
// fmt.Fprintln(outf, "found msg")
|
||||
tk.v = v
|
||||
}
|
||||
} else {
|
||||
// display the output in the gocui window
|
||||
var cur []string
|
||||
// chop off the last lines in the buffer
|
||||
chop := len(me.stdout.outputS) - (me.stdout.h - 1)
|
||||
if chop < 0 {
|
||||
chop = 0
|
||||
}
|
||||
if len(me.stdout.outputS) > chop {
|
||||
cur = append(cur, me.stdout.outputS[chop:]...)
|
||||
} else {
|
||||
cur = append(cur, me.stdout.outputS...)
|
||||
}
|
||||
slices.Reverse(cur)
|
||||
tk.v.Clear()
|
||||
fmt.Fprintln(tk.v, strings.Join(cur, "\n"))
|
||||
}
|
||||
*/
|
||||
|
||||
return len(p), nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue