From 216b5c183c0dad1e510969418eb3509e1df1d713 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 17 May 2014 20:21:48 -0400 Subject: [PATCH] Made drawing of NSScrollView backgrounds explicit on Mac OS X. This is what Interface Builder sets for NSTableViews, so we do that too for Listbox. This also means NSScrollView draws the background for our Areas, settling the clear clip rect TODO. --- area_darwin.go | 2 +- objc_darwin.m | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/area_darwin.go b/area_darwin.go index 3211822..b24a0dd 100644 --- a/area_darwin.go +++ b/area_darwin.go @@ -27,7 +27,7 @@ func areaInScrollView(scrollview C.id) C.id { //export areaView_drawRect func areaView_drawRect(self C.id, rect C.struct_xrect) { s := getSysData(self) - // TODO clear clip rect + // no need to clear the clip rect; the NSScrollView does that for us (see the setDrawsBackground: call in objc_darwin.m) // rectangles in Cocoa are origin/size, not point0/point1; if we don't watch for this, weird things will happen when scrolling cliprect := image.Rect(int(rect.x), int(rect.y), int(rect.x + rect.width), int(rect.y + rect.height)) max := C.frame(self) diff --git a/objc_darwin.m b/objc_darwin.m index 09c2ec2..9628837 100644 --- a/objc_darwin.m +++ b/objc_darwin.m @@ -50,6 +50,8 @@ id makeScrollView(id content) [scrollview setHasHorizontalScroller:YES]; [scrollview setHasVerticalScroller:YES]; [scrollview setAutohidesScrollers:YES]; + // Interface Builder sets this for NSTableViews; we also want this on Areas + [scrollview setDrawsBackground:YES]; [scrollview setDocumentView:toNSView(content)]; return scrollview; }