diff options
Diffstat (limited to 'render_sdl.c')
-rwxr-xr-x | render_sdl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/render_sdl.c b/render_sdl.c index d2fda42..8e1e7f6 100755 --- a/render_sdl.c +++ b/render_sdl.c @@ -914,6 +914,12 @@ static uint8_t scancode_map[SDL_NUM_SCANCODES] = { [SDL_SCANCODE_KP_PERIOD] = 0x71, }; +static drop_handler drag_drop_handler; +void render_set_drag_drop_handler(drop_handler handler) +{ + drag_drop_handler = handler; +} + static int32_t handle_event(SDL_Event *event) { switch (event->type) { @@ -986,6 +992,12 @@ static int32_t handle_event(SDL_Event *event) break; } break; + case SDL_DROPFILE: + if (drag_drop_handler) { + drag_drop_handler(event->drop.file); + } + SDL_free(event->drop.file); + break; case SDL_QUIT: puts(""); exit(0); |