diff options
| author | Pietro Gagliardi <[email protected]> | 2014-07-18 15:16:41 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-07-18 15:16:41 -0400 |
| commit | b56f60c04cb5128edce4894c5aaf8c04f721125b (patch) | |
| tree | a275600af8540aa2a5bff450136a833945ba6efb | |
| parent | 6bc4425915920f0af935af02fe0eeebeae7e88b0 (diff) | |
Fixed control positioning on initial window show on Mac OS X.
| -rw-r--r-- | redo/window_darwin.go | 1 | ||||
| -rw-r--r-- | redo/window_darwin.m | 9 |
2 files changed, 8 insertions, 2 deletions
diff --git a/redo/window_darwin.go b/redo/window_darwin.go index d6eeb3c..c84c204 100644 --- a/redo/window_darwin.go +++ b/redo/window_darwin.go @@ -135,7 +135,6 @@ func windowClosing(xw unsafe.Pointer) C.BOOL { //export windowResized func windowResized(xw unsafe.Pointer, width C.uintptr_t, height C.uintptr_t) { - // TODO this isn't called when the window first opens up w := (*window)(unsafe.Pointer(xw)) w.doresize(int(width), int(height)) fmt.Printf("new size %d x %d\n", width, height) diff --git a/redo/window_darwin.m b/redo/window_darwin.m index 426f353..20908c1 100644 --- a/redo/window_darwin.m +++ b/redo/window_darwin.m @@ -22,10 +22,15 @@ - (void)windowDidResize:(NSNotification *)n { + [self doWindowResize:[n object]]; +} + +- (void)doWindowResize:(id)win +{ NSWindow *w; NSRect r; - w = toNSWindow([n object]); + w = toNSWindow(win); r = [[w contentView] frame]; windowResized(self->gowin, (uintptr_t) r.size.width, (uintptr_t) r.size.height); } @@ -62,6 +67,8 @@ void windowSetTitle(id win, const char * title) void windowShow(id win) { [toNSWindow(win) makeKeyAndOrderFront:toNSWindow(win)]; + // calling the above the first time won't emit a size changed event (unlike on Windows and GTK+), so fake one to get the controls laid out properly + [[toNSWindow(win) delegate] doWindowResize:win]; } void windowHide(id win) |
