From 93e87a05c7220f1a8dd7ac2e8dc43b123f6e0f71 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Thu, 6 Feb 2025 14:46:32 -0600 Subject: dragging a windows keeps it put --- window.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'window.go') 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 } } -- cgit v1.2.3