summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--redo/window_darwin.go1
-rw-r--r--redo/window_darwin.m9
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)