From 733d98abcb966af2f267e5dd2ca8caaabcf13691 Mon Sep 17 00:00:00 2001 From: Travis Watkins Date: Sat, 14 Sep 2013 04:58:32 -0500 Subject: [PATCH] Allow for multiple user events, pass event type for them --- src/event.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/event.rs b/src/event.rs index 329624dc..63daee38 100644 --- a/src/event.rs +++ b/src/event.rs @@ -558,7 +558,7 @@ pub enum Event { ClipboardUpdateEvent(uint), DropFileEvent(uint, ~str), - UserEvent(uint, ~video::Window, int), + UserEvent(uint, ~video::Window, uint, int), } impl Event { @@ -962,9 +962,16 @@ fn wrap_event(raw: ll::SDL_Event) -> Event { DropFileEvent(event.timestamp as uint, text) } - // TODO: All the touch events - UserEventType => { + FirstEventType => NoEvent, + + // If we have no other match and the event type is >= 32768 + // this is a user event + _ => { + if raw_type < 32768 { + return NoEvent; + } + let event = raw.user(); let event = if event.is_null() { return NoEvent; } else { *event }; @@ -975,12 +982,9 @@ fn wrap_event(raw: ll::SDL_Event) -> Event { Ok(window) => window, }; - UserEvent(event.timestamp as uint, window, event.code as int) + UserEvent(event.timestamp as uint, window, raw_type as uint, + event.code as int) } - - FirstEventType => NoEvent, - LastEventType => NoEvent, - //_ => NoEvent } } }