aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml6
-rw-r--r--src/api/win32/init.rs12
-rw-r--r--src/lib.rs2
3 files changed, 9 insertions, 11 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 4f73636..4bcbac5 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -37,16 +37,18 @@ glutin_core_graphics = "0"
glutin_core_foundation = "0"
[target.i686-pc-windows-gnu.dependencies]
-winapi = "0.1"
+winapi = "~0.1.18"
gdi32-sys = "0.1"
user32-sys = "~0.1.1"
kernel32-sys = "0.1"
+dwmapi-sys = "0.1"
[target.x86_64-pc-windows-gnu.dependencies]
-winapi = "0.1"
+winapi = "~0.1.18"
gdi32-sys = "0.1"
user32-sys = "~0.1.1"
kernel32-sys = "0.1"
+dwmapi-sys = "0.1"
[target.i686-unknown-linux-gnu.dependencies]
osmesa-sys = "0.0.5"
diff --git a/src/api/win32/init.rs b/src/api/win32/init.rs
index 1252354..f46c395 100644
--- a/src/api/win32/init.rs
+++ b/src/api/win32/init.rs
@@ -25,6 +25,7 @@ use std::sync::mpsc::channel;
use winapi;
use kernel32;
+use dwmapi;
use user32;
use api::wgl;
@@ -223,15 +224,8 @@ unsafe fn init(title: Vec<u16>, builder: BuilderAttribs<'static>,
fTransitionOnMaximized: 0,
};
- let dll = kernel32::LoadLibraryA(b"dwmapi.dll\0".as_ptr() as *const _);
- if !dll.is_null() {
- let pr = kernel32::GetProcAddress(dll, b"DwmEnableBlurBehindWindow\0".as_ptr() as *const _);
- if !pr.is_null() {
- let pr: unsafe extern "system" fn(winapi::HWND, *const winapi::DWM_BLURBEHIND)
- -> winapi::HRESULT = mem::transmute(pr);
- pr(real_window.0, &bb);
- }
- kernel32::FreeLibrary(dll);
+ unsafe {
+ dwmapi::DwmEnableBlurBehindWindow(real_window.0, &bb);
}
}
diff --git a/src/lib.rs b/src/lib.rs
index d2aaf46..612206e 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -40,6 +40,8 @@ extern crate kernel32;
extern crate gdi32;
#[cfg(target_os = "windows")]
extern crate user32;
+#[cfg(target_os = "windows")]
+extern crate dwmapi;
#[cfg(target_os = "macos")]
#[macro_use]
extern crate objc;