summaryrefslogtreecommitdiff
path: root/redo/controls_darwin.go
diff options
context:
space:
mode:
Diffstat (limited to 'redo/controls_darwin.go')
-rw-r--r--redo/controls_darwin.go9
1 files changed, 5 insertions, 4 deletions
diff --git a/redo/controls_darwin.go b/redo/controls_darwin.go
index 92eb836..6d5edf8 100644
--- a/redo/controls_darwin.go
+++ b/redo/controls_darwin.go
@@ -11,7 +11,7 @@ import "C"
type widgetbase struct {
id C.id
- parentw *window
+ notnew bool // to prevent unparenting a new control
floating bool
}
@@ -24,17 +24,18 @@ func newWidget(id C.id) *widgetbase {
// these few methods are embedded by all the various Controls since they all will do the same thing
func (w *widgetbase) unparent() {
- if w.parentw != nil {
+ if w.notnew {
+ // redrawing the old window handled by C.unparent()
C.unparent(w.id)
w.floating = true
- w.parentw = nil
}
}
func (w *widgetbase) parent(win *window) {
+ // redrawing the new window handled by C.parent()
C.parent(w.id, win.id, toBOOL(w.floating))
w.floating = false
- w.parentw = win
+ w.notnew = true
}
type button struct {