summaryrefslogtreecommitdiff
path: root/window.go
diff options
context:
space:
mode:
Diffstat (limited to 'window.go')
-rw-r--r--window.go21
1 files changed, 16 insertions, 5 deletions
diff --git a/window.go b/window.go
index 313c153..621bae1 100644
--- a/window.go
+++ b/window.go
@@ -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
}
}