diff options
| author | Jeff Carr <[email protected]> | 2024-01-16 00:54:41 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-01-16 00:54:41 -0600 |
| commit | 751b6059c0432ede8de32656b777196cfdd6adaf (patch) | |
| tree | b3ac2378e30bd481ab02572af2939c6336b91def /basicWindow.go | |
| parent | 01b512ddb32486af82894e98b3733cb00c59b3f2 (diff) | |
add StandardExit()
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'basicWindow.go')
| -rw-r--r-- | basicWindow.go | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/basicWindow.go b/basicWindow.go index 35d80d6..8e511cf 100644 --- a/basicWindow.go +++ b/basicWindow.go @@ -65,6 +65,20 @@ func (w *BasicWindow) Title(title string) { return } +// sets this window to run os.Exit() +func (w *BasicWindow) StandardExit() { + if ! w.Ready() {return} + w.win.Custom = func() { + log.Warn("BasicWindow.Custom() closed. TODO: handle this", w.title) + log.Warn("BasicWindow.Custom() closed. handled properly?", w.title) + if w.Custom != nil { + w.Custom() + } + w.win.StandardExit() + } + return +} + // Returns true if initialized func (w *BasicWindow) Initialized() bool { if w == nil {return false} @@ -107,13 +121,19 @@ func (w *BasicWindow) Make() { log.Warn("BasicWindow.Make() window was already created") return } - // various timeout settings w.win = w.parent.RawWindow(w.title) - w.win.Custom = func() { - log.Warn("BasicWindow.Custom() closed. TODO: handle this", w.title) - log.Warn("BasicWindow.Custom() closed. handled properly?", w.title) - if w.Custom != nil { - w.Custom() + + // if Custom isn't set, set it here. This prevents the application from + // os.Exit() if the window is closed. It destroy's the widgets in the toolkit plugins + // the the window still exists in the binary tree and functions normally + // I like to call this Sierpinski mode + if w.win.Custom == nil { + w.win.Custom = func() { + log.Warn("BasicWindow.Custom() closed. TODO: handle this", w.title) + log.Warn("BasicWindow.Custom() closed. handled properly?", w.title) + if w.Custom != nil { + w.Custom() + } } } if w.vertical { |
