From 521f3baa9f56d964a52099894e4b80f82bdf4649 Mon Sep 17 00:00:00 2001 From: Allanis <allanis@saracraft.net> Date: Wed, 27 Feb 2013 23:19:40 +0000 Subject: [PATCH] [Add] Allow toolkit to block input if needed. --- src/input.c | 3 ++- src/toolkit.c | 7 +++++-- src/toolkit.h | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/input.c b/src/input.c index 747c229..301ee55 100644 --- a/src/input.c +++ b/src/input.c @@ -302,7 +302,8 @@ static void input_keyup(SDLKey key) { void input_handle(SDL_Event* event) { if(toolkit) // Toolkit is handled seperately. - toolkit_input(event); + if(toolkit_input(event)) + return; // We don't process it if toolkit grabs it. switch(event->type) { case SDL_JOYAXISMOTION: diff --git a/src/toolkit.c b/src/toolkit.c index ad4750b..7fd0686 100644 --- a/src/toolkit.c +++ b/src/toolkit.c @@ -693,14 +693,17 @@ void toolkit_render(void) { } -void toolkit_input(SDL_Event* event) { +// Toolkit input is handled here. +// If we return 1, the input isn't passed. +int toolkit_input(SDL_Event* event) { switch(event->type) { case SDL_MOUSEMOTION: case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONUP: toolkit_mouseEvent(event); - break; + return 1; // Block input. } + return 0; // Don't block unput. } // Input. diff --git a/src/toolkit.h b/src/toolkit.h index a697c53..1c576ff 100644 --- a/src/toolkit.h +++ b/src/toolkit.h @@ -34,7 +34,7 @@ void window_destroyWidget(unsigned wid, const char* wgtname); void toolkit_render(void); // Input. -void toolkit_input(SDL_Event* event); +int toolkit_input(SDL_Event* event); // Init/Exit. int toolkit_init(void);