mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-05 09:25:38 +00:00
app/internal/window: [macOS] don't set callbacks before window is ready
Updates gio#130 Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -294,7 +294,7 @@ func NewWindow(win Callbacks, opts *Options) error {
|
|||||||
<-launched
|
<-launched
|
||||||
errch := make(chan error)
|
errch := make(chan error)
|
||||||
runOnMain(func() {
|
runOnMain(func() {
|
||||||
w, err := newWindow(win, opts)
|
w, err := newWindow(opts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errch <- err
|
errch <- err
|
||||||
return
|
return
|
||||||
@@ -309,13 +309,14 @@ func NewWindow(win Callbacks, opts *Options) error {
|
|||||||
title := C.CString(opts.Title)
|
title := C.CString(opts.Title)
|
||||||
defer C.free(unsafe.Pointer(title))
|
defer C.free(unsafe.Pointer(title))
|
||||||
errch <- nil
|
errch <- nil
|
||||||
nextTopLeft = C.gio_createWindow(w.view, title, C.CGFloat(width), C.CGFloat(height), nextTopLeft)
|
|
||||||
win.SetDriver(w)
|
win.SetDriver(w)
|
||||||
|
w.w = win
|
||||||
|
nextTopLeft = C.gio_createWindow(w.view, title, C.CGFloat(width), C.CGFloat(height), nextTopLeft)
|
||||||
})
|
})
|
||||||
return <-errch
|
return <-errch
|
||||||
}
|
}
|
||||||
|
|
||||||
func newWindow(win Callbacks, opts *Options) (*window, error) {
|
func newWindow(opts *Options) (*window, error) {
|
||||||
view := viewFactory()
|
view := viewFactory()
|
||||||
if view == 0 {
|
if view == 0 {
|
||||||
return nil, errors.New("CreateWindow: failed to create view")
|
return nil, errors.New("CreateWindow: failed to create view")
|
||||||
@@ -324,7 +325,6 @@ func newWindow(win Callbacks, opts *Options) (*window, error) {
|
|||||||
w := &window{
|
w := &window{
|
||||||
view: view,
|
view: view,
|
||||||
scale: scale,
|
scale: scale,
|
||||||
w: win,
|
|
||||||
}
|
}
|
||||||
dl, err := NewDisplayLink(func() {
|
dl, err := NewDisplayLink(func() {
|
||||||
runOnMain(func() {
|
runOnMain(func() {
|
||||||
|
|||||||
Reference in New Issue
Block a user