mirror of
https://github.com/encounter/rust-sdl2.git
synced 2026-07-10 21:18:41 -07:00
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:
+4
-11
@@ -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,
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user