aboutsummaryrefslogtreecommitdiffstats
path: root/src/api/win32
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/win32')
-rw-r--r--src/api/win32/callback.rs5
-rw-r--r--src/api/win32/init.rs1
-rw-r--r--src/api/win32/mod.rs38
3 files changed, 8 insertions, 36 deletions
diff --git a/src/api/win32/callback.rs b/src/api/win32/callback.rs
index 86d5f1c..6ac56f3 100644
--- a/src/api/win32/callback.rs
+++ b/src/api/win32/callback.rs
@@ -112,12 +112,13 @@ pub unsafe extern "system" fn callback(window: winapi::HWND, msg: winapi::UINT,
winapi::WM_MOUSEWHEEL => {
use events::Event::MouseWheel;
+ use events::MouseScrollDelta::LineDelta;
let value = (wparam >> 16) as i16;
let value = value as i32;
- let value = value as f64 / winapi::WHEEL_DELTA as f64;
+ let value = value as f32 / winapi::WHEEL_DELTA as f32;
- send_event(window, MouseWheel(0.0, value));
+ send_event(window, MouseWheel(LineDelta(0.0, value)));
0
},
diff --git a/src/api/win32/init.rs b/src/api/win32/init.rs
index f46c395..7cb5433 100644
--- a/src/api/win32/init.rs
+++ b/src/api/win32/init.rs
@@ -257,7 +257,6 @@ unsafe fn init(title: Vec<u16>, builder: BuilderAttribs<'static>,
window: real_window,
context: context,
events_receiver: events_receiver,
- is_closed: AtomicBool::new(false),
cursor_state: cursor_state,
})
}
diff --git a/src/api/win32/mod.rs b/src/api/win32/mod.rs
index af339c5..d21f16d 100644
--- a/src/api/win32/mod.rs
+++ b/src/api/win32/mod.rs
@@ -11,6 +11,7 @@ use std::sync::{
};
use std::sync::mpsc::Receiver;
use libc;
+use ContextError;
use {CreationError, Event, MouseCursor};
use CursorState;
use GlContext;
@@ -47,9 +48,6 @@ pub struct Window {
/// Receiver for the events dispatched by the window callback.
events_receiver: Receiver<Event>,
- /// True if a `Closed` event has been received.
- is_closed: AtomicBool,
-
/// The current cursor state.
cursor_state: Arc<Mutex<CursorState>>,
}
@@ -98,12 +96,6 @@ impl Window {
}
/// See the docs in the crate root file.
- pub fn is_closed(&self) -> bool {
- use std::sync::atomic::Ordering::Relaxed;
- self.is_closed.load(Relaxed)
- }
-
- /// See the docs in the crate root file.
///
/// Calls SetWindowText on the HWND.
pub fn set_title(&self, text: &str) {
@@ -315,7 +307,7 @@ impl Window {
}
impl GlContext for Window {
- unsafe fn make_current(&self) {
+ unsafe fn make_current(&self) -> Result<(), ContextError> {
match self.context {
Context::Wgl(ref c) => c.make_current(),
Context::Egl(ref c) => c.make_current(),
@@ -336,7 +328,7 @@ impl GlContext for Window {
}
}
- fn swap_buffers(&self) {
+ fn swap_buffers(&self) -> Result<(), ContextError> {
match self.context {
Context::Wgl(ref c) => c.swap_buffers(),
Context::Egl(ref c) => c.swap_buffers(),
@@ -366,17 +358,7 @@ impl<'a> Iterator for PollEventsIterator<'a> {
type Item = Event;
fn next(&mut self) -> Option<Event> {
- use events::Event::Closed;
-
- match self.window.events_receiver.try_recv() {
- Ok(Closed) => {
- use std::sync::atomic::Ordering::Relaxed;
- self.window.is_closed.store(true, Relaxed);
- Some(Closed)
- },
- Ok(ev) => Some(ev),
- Err(_) => None
- }
+ self.window.events_receiver.try_recv().ok()
}
}
@@ -388,17 +370,7 @@ impl<'a> Iterator for WaitEventsIterator<'a> {
type Item = Event;
fn next(&mut self) -> Option<Event> {
- use events::Event::Closed;
-
- match self.window.events_receiver.recv() {
- Ok(Closed) => {
- use std::sync::atomic::Ordering::Relaxed;
- self.window.is_closed.store(true, Relaxed);
- Some(Closed)
- },
- Ok(ev) => Some(ev),
- Err(_) => None
- }
+ self.window.events_receiver.recv().ok()
}
}