From cb0811faf3d328b624364b9a2b3641504be82183 Mon Sep 17 00:00:00 2001 From: Corey Farwell Date: Sat, 26 Nov 2016 15:53:38 -0500 Subject: [PATCH] Implement window transparency on macOS. Fixes https://github.com/tomaka/winit/issues/57. --- Cargo.toml | 2 +- src/platform/macos/mod.rs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6fab8a0f..661016c2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,7 +26,7 @@ objc = "0.2" [target.'cfg(target_os = "macos")'.dependencies] objc = "0.2" cgl = "0.1" -cocoa = "0.5.0" +cocoa = "0.5.2" core-foundation = "0" core-graphics = "0.4" diff --git a/src/platform/macos/mod.rs b/src/platform/macos/mod.rs index 8687197e..299f9c3e 100644 --- a/src/platform/macos/mod.rs +++ b/src/platform/macos/mod.rs @@ -14,7 +14,7 @@ use objc::declare::ClassDecl; use cocoa::base::{id, nil}; use cocoa::foundation::{NSAutoreleasePool, NSDate, NSDefaultRunLoopMode, NSPoint, NSRect, NSSize, NSString, NSUInteger}; -use cocoa::appkit::{self, NSApplication, NSEvent, NSView, NSWindow}; +use cocoa::appkit::{self, NSApplication, NSColor, NSEvent, NSView, NSWindow}; use core_graphics::display::{CGAssociateMouseAndMouseCursorPosition, CGMainDisplayID, CGDisplayPixelsHigh, CGWarpMouseCursorPosition}; @@ -287,7 +287,8 @@ impl Window { unsafe { if win_attribs.transparent { - unimplemented!(); + (*window as id).setOpaque_(NO); + (*window as id).setBackgroundColor_(NSColor::clearColor(nil)); } app.activateIgnoringOtherApps_(YES);