dragging a windows keeps it put
This commit is contained in:
parent
bc15e6c879
commit
93e87a05c7
|
@ -105,6 +105,7 @@ func mouseMove(g *gocui.Gui) {
|
||||||
func (tk *guiWidget) moveNew() {
|
func (tk *guiWidget) moveNew() {
|
||||||
w, h := me.baseGui.MousePosition()
|
w, h := me.baseGui.MousePosition()
|
||||||
if tk.node.WidgetType == widget.Window {
|
if tk.node.WidgetType == widget.Window {
|
||||||
|
tk.window.wasDragged = true
|
||||||
tk.redrawWindow(w-tk.dragW, h-tk.dragH) // TODO: fix these hard coded things with offsets
|
tk.redrawWindow(w-tk.dragW, h-tk.dragH) // TODO: fix these hard coded things with offsets
|
||||||
setThingsOnTop() // sets help, Stdout, etc on the top after windows have been redrawn
|
setThingsOnTop() // sets help, Stdout, etc on the top after windows have been redrawn
|
||||||
return
|
return
|
||||||
|
|
|
@ -119,6 +119,7 @@ func (r *rectType) Height() int {
|
||||||
// settings that are window specific
|
// settings that are window specific
|
||||||
type window struct {
|
type window struct {
|
||||||
windowFrame *guiWidget // this is the frame for a window widget
|
windowFrame *guiWidget // this is the frame for a window widget
|
||||||
|
wasDragged bool // indicates the window was dragged. This keeps it from being rearranged
|
||||||
dragW int // when dragging a window, this is the offset to the mouse position
|
dragW int // when dragging a window, this is the offset to the mouse position
|
||||||
dragH int // when dragging a window, this is the offset to the mouse position
|
dragH int // when dragging a window, this is the offset to the mouse position
|
||||||
hasTabs bool // does the window have tabs?
|
hasTabs bool // does the window have tabs?
|
||||||
|
|
21
window.go
21
window.go
|
@ -83,13 +83,24 @@ func (tk *guiWidget) redrawWindow(w int, h int) {
|
||||||
|
|
||||||
// re-draws the buttons for each of the windows
|
// re-draws the buttons for each of the windows
|
||||||
func redoWindows(nextW int, nextH int) {
|
func redoWindows(nextW int, nextH int) {
|
||||||
for _, win := range findWindows() {
|
for _, tk := range findWindows() {
|
||||||
win.dumpWidget(fmt.Sprintf("redoWindowsS (%d,%d)", nextW, nextH))
|
tk.dumpWidget(fmt.Sprintf("redoWindowsS (%d,%d)", nextW, nextH))
|
||||||
win.redrawWindow(nextW, nextH)
|
if tk.window.wasDragged {
|
||||||
win.dumpWidget(fmt.Sprintf("redoWindowsE (%d,%d)", nextW, nextH))
|
// 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
|
// increment the width for the next window
|
||||||
nextW += win.gocuiSize.Width() + 10
|
nextW += tk.gocuiSize.Width() + 10
|
||||||
// nextH += 10
|
// nextH += 10
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue