Skip to content

Commit

Permalink
Filter both SIZE_CHANGED and RESIZED on any SIZE_CHANGED
Browse files Browse the repository at this point in the history
  • Loading branch information
flibitijibibo committed Aug 13, 2018
1 parent 95579f5 commit de9f541
Showing 1 changed file with 4 additions and 20 deletions.
24 changes: 4 additions & 20 deletions src/events/SDL_windowevents.c
Expand Up @@ -28,26 +28,13 @@


static int SDLCALL
RemovePendingResizedEvents(void * userdata, SDL_Event *event)
RemovePendingSizeChangedAndResizedEvents(void * userdata, SDL_Event *event)
{
SDL_Event *new_event = (SDL_Event *)userdata;

if (event->type == SDL_WINDOWEVENT &&
event->window.event == SDL_WINDOWEVENT_RESIZED &&
event->window.windowID == new_event->window.windowID) {
/* We're about to post a new size event, drop the old one */
return 0;
}
return 1;
}

static int SDLCALL
RemovePendingSizeChangedEvents(void * userdata, SDL_Event *event)
{
SDL_Event *new_event = (SDL_Event *)userdata;

if (event->type == SDL_WINDOWEVENT &&
event->window.event == SDL_WINDOWEVENT_SIZE_CHANGED &&
(event->window.event == SDL_WINDOWEVENT_SIZE_CHANGED ||
event->window.event == SDL_WINDOWEVENT_RESIZED) &&
event->window.windowID == new_event->window.windowID) {
/* We're about to post a new size event, drop the old one */
return 0;
Expand Down Expand Up @@ -199,11 +186,8 @@ SDL_SendWindowEvent(SDL_Window * window, Uint8 windowevent, int data1,
event.window.windowID = window->id;

/* Fixes queue overflow with resize events that aren't processed */
if (windowevent == SDL_WINDOWEVENT_RESIZED) {
SDL_FilterEvents(RemovePendingResizedEvents, &event);
}
if (windowevent == SDL_WINDOWEVENT_SIZE_CHANGED) {
SDL_FilterEvents(RemovePendingSizeChangedEvents, &event);
SDL_FilterEvents(RemovePendingSizeChangedAndResizedEvents, &event);
}
if (windowevent == SDL_WINDOWEVENT_MOVED) {
SDL_FilterEvents(RemovePendingMoveEvents, &event);
Expand Down

0 comments on commit de9f541

Please sign in to comment.