aboutsummaryrefslogtreecommitdiffstats
path: root/src/win32/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/win32/mod.rs')
-rw-r--r--src/win32/mod.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/win32/mod.rs b/src/win32/mod.rs
index 2769bf1..be72d53 100644
--- a/src/win32/mod.rs
+++ b/src/win32/mod.rs
@@ -2,6 +2,8 @@ use std::sync::atomic::AtomicBool;
use std::mem;
use std::ptr;
use std::ffi::CString;
+use std::ffi::OsStr;
+use std::os::windows::ffi::OsStrExt;
use std::sync::{
Arc,
Mutex
@@ -109,10 +111,11 @@ impl Window {
///
/// Calls SetWindowText on the HWND.
pub fn set_title(&self, text: &str) {
+ let text = OsStr::from_str(text).encode_wide().chain(Some(0).into_iter())
+ .collect::<Vec<_>>();
+
unsafe {
- user32::SetWindowTextW(self.window.0,
- text.utf16_units().chain(Some(0).into_iter())
- .collect::<Vec<u16>>().as_ptr() as winapi::LPCWSTR);
+ user32::SetWindowTextW(self.window.0, text.as_ptr() as winapi::LPCWSTR);
}
}
@@ -395,7 +398,6 @@ impl<'a> Iterator for WaitEventsIterator<'a> {
}
}
-#[unsafe_destructor]
impl Drop for Window {
fn drop(&mut self) {
unsafe {