Skip to content

Commit bddff42

Browse files
committed
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
1 parent e5ab002 commit bddff42

File tree

2 files changed

+9
-16
lines changed

2 files changed

+9
-16
lines changed

src/sdl2/event.rs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -514,15 +514,15 @@ pub enum Event {
514514
timestamp: u32,
515515
window_id: u32,
516516
which: u32,
517-
mouse_btn: Option<MouseButton>,
517+
mouse_btn: MouseButton,
518518
x: i32,
519519
y: i32
520520
},
521521
MouseButtonUp {
522522
timestamp: u32,
523523
window_id: u32,
524524
which: u32,
525-
mouse_btn: Option<MouseButton>,
525+
mouse_btn: MouseButton,
526526
x: i32,
527527
y: i32
528528
},
@@ -759,11 +759,6 @@ fn mk_keysym(scancode: Option<Scancode>,
759759
}
760760
}
761761

762-
/// Helper function is only to unwrap a mouse_button to u8
763-
fn mk_mouse_button(mouse_button: Option<MouseButton>) -> u8 {
764-
mouse_button.unwrap() as u8
765-
}
766-
767762
// TODO: Remove this when from_utf8 is updated in Rust
768763
// This would honestly be nice if it took &self instead of self,
769764
// but Event::User's raw pointers kind of removes that possibility.
@@ -904,13 +899,12 @@ impl Event {
904899
x,
905900
y
906901
} => {
907-
let button = mk_mouse_button(mouse_btn);
908902
let event = ll::SDL_MouseButtonEvent {
909903
type_: ll::SDL_MOUSEBUTTONDOWN,
910904
timestamp: timestamp,
911905
windowID: window_id,
912906
which: which,
913-
button: button,
907+
button: mouse_btn as u8,
914908
state: ll::SDL_PRESSED,
915909
padding1: 0,
916910
padding2: 0,
@@ -930,13 +924,12 @@ impl Event {
930924
x,
931925
y
932926
} => {
933-
let button = mk_mouse_button(mouse_btn);
934927
let event = ll::SDL_MouseButtonEvent {
935928
type_: ll::SDL_MOUSEBUTTONUP,
936929
timestamp: timestamp,
937930
windowID: window_id,
938931
which: which,
939-
button: button,
932+
button: mouse_btn as u8,
940933
state: ll::SDL_RELEASED,
941934
padding1: 0,
942935
padding2: 0,

src/sdl2/mouse/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,15 +140,15 @@ pub enum MouseButton {
140140

141141
impl MouseButton {
142142
#[inline]
143-
pub fn from_ll(button: u8) -> Option<MouseButton> {
144-
Some(match button {
143+
pub fn from_ll(button: u8) -> MouseButton {
144+
match button {
145145
ll::SDL_BUTTON_LEFT => MouseButton::Left,
146146
ll::SDL_BUTTON_MIDDLE => MouseButton::Middle,
147147
ll::SDL_BUTTON_RIGHT => MouseButton::Right,
148148
ll::SDL_BUTTON_X1 => MouseButton::X1,
149149
ll::SDL_BUTTON_X2 => MouseButton::X2,
150-
_ => return None,
151-
})
150+
_ => MouseButton::Unknown,
151+
}
152152
}
153153
}
154154

@@ -289,7 +289,7 @@ impl<'a> Iterator for MouseButtonIterator<'a> {
289289
let mask = 1 << ((self.cur_button as u32)-1);
290290
let pressed = self.mouse_state & mask != 0;
291291
self.cur_button += 1;
292-
Some((MouseButton::from_ll(mouse_button).unwrap(), pressed))
292+
Some((MouseButton::from_ll(mouse_button), pressed))
293293
} else {
294294
None
295295
}

0 commit comments

Comments
 (0)