Revert Opt(Mouse)to Mouse for Event:Mouse{Up,Down}

Changing MouseButtonDown and MouseButtonUp broke the API
while it wasn't useful to do so; since the 'None' in Option
represents Unknown MouseButton (and not Non-present ones),
it is clearer to have an enum variant called Unknown to
make the distinction
This commit is contained in:
Cobrand
2016-12-06 23:11:30 +01:00
parent e5ab0023a3
commit bddff42fc5
2 changed files with 9 additions and 16 deletions
+4 -11
View File
@@ -514,7 +514,7 @@ pub enum Event {
timestamp: u32,
window_id: u32,
which: u32,
mouse_btn: Option<MouseButton>,
mouse_btn: MouseButton,
x: i32,
y: i32
},
@@ -522,7 +522,7 @@ pub enum Event {
timestamp: u32,
window_id: u32,
which: u32,
mouse_btn: Option<MouseButton>,
mouse_btn: MouseButton,
x: i32,
y: i32
},
@@ -759,11 +759,6 @@ fn mk_keysym(scancode: Option<Scancode>,
}
}
/// Helper function is only to unwrap a mouse_button to u8
fn mk_mouse_button(mouse_button: Option<MouseButton>) -> u8 {
mouse_button.unwrap() as u8
}
// TODO: Remove this when from_utf8 is updated in Rust
// This would honestly be nice if it took &self instead of self,
// but Event::User's raw pointers kind of removes that possibility.
@@ -904,13 +899,12 @@ impl Event {
x,
y
} => {
let button = mk_mouse_button(mouse_btn);
let event = ll::SDL_MouseButtonEvent {
type_: ll::SDL_MOUSEBUTTONDOWN,
timestamp: timestamp,
windowID: window_id,
which: which,
button: button,
button: mouse_btn as u8,
state: ll::SDL_PRESSED,
padding1: 0,
padding2: 0,
@@ -930,13 +924,12 @@ impl Event {
x,
y
} => {
let button = mk_mouse_button(mouse_btn);
let event = ll::SDL_MouseButtonEvent {
type_: ll::SDL_MOUSEBUTTONUP,
timestamp: timestamp,
windowID: window_id,
which: which,
button: button,
button: mouse_btn as u8,
state: ll::SDL_RELEASED,
padding1: 0,
padding2: 0,
+5 -5
View File
@@ -140,15 +140,15 @@ pub enum MouseButton {
impl MouseButton {
#[inline]
pub fn from_ll(button: u8) -> Option<MouseButton> {
Some(match button {
pub fn from_ll(button: u8) -> MouseButton {
match button {
ll::SDL_BUTTON_LEFT => MouseButton::Left,
ll::SDL_BUTTON_MIDDLE => MouseButton::Middle,
ll::SDL_BUTTON_RIGHT => MouseButton::Right,
ll::SDL_BUTTON_X1 => MouseButton::X1,
ll::SDL_BUTTON_X2 => MouseButton::X2,
_ => return None,
})
_ => MouseButton::Unknown,
}
}
}
@@ -289,7 +289,7 @@ impl<'a> Iterator for MouseButtonIterator<'a> {
let mask = 1 << ((self.cur_button as u32)-1);
let pressed = self.mouse_state & mask != 0;
self.cur_button += 1;
Some((MouseButton::from_ll(mouse_button).unwrap(), pressed))
Some((MouseButton::from_ll(mouse_button), pressed))
} else {
None
}