diff options
Diffstat (limited to 'window.go')
| -rw-r--r-- | window.go | 21 |
1 files changed, 16 insertions, 5 deletions
@@ -83,13 +83,24 @@ func (tk *guiWidget) redrawWindow(w int, h int) { // re-draws the buttons for each of the windows func redoWindows(nextW int, nextH int) { - for _, win := range findWindows() { - win.dumpWidget(fmt.Sprintf("redoWindowsS (%d,%d)", nextW, nextH)) - win.redrawWindow(nextW, nextH) - win.dumpWidget(fmt.Sprintf("redoWindowsE (%d,%d)", nextW, nextH)) + for _, tk := range findWindows() { + tk.dumpWidget(fmt.Sprintf("redoWindowsS (%d,%d)", nextW, nextH)) + if tk.window.wasDragged { + // don't move windows around the user has dragged to a certain location + tk.redrawWindow(tk.gocuiSize.w0, tk.gocuiSize.h0) + } else { + w, _ := me.baseGui.Size() + if nextW > w-20 { + nextW = 0 + nextH += 4 + } + // probably a new window? + tk.redrawWindow(nextW, nextH) + } + tk.dumpWidget(fmt.Sprintf("redoWindowsE (%d,%d)", nextW, nextH)) // increment the width for the next window - nextW += win.gocuiSize.Width() + 10 + nextW += tk.gocuiSize.Width() + 10 // nextH += 10 } } |
