diff --git a/inc/lektor/net.h b/inc/lektor/net.h index 981753dc1f8d6aa4ce823c268fd76fe25946e257..e9985dfc49d267bc0ff314e1f099954e08da16d8 100644 --- a/inc/lektor/net.h +++ b/inc/lektor/net.h @@ -86,6 +86,8 @@ struct lkt_state { struct lkt_win win; }; +void lkt_set_event_available(struct lkt_state *srv, enum lkt_event_type type); + /* Send a message to the connected client. */ void lkt_state_send(struct lkt_state *srv, size_t c, struct lkt_message *msg); diff --git a/src/module/module_sdl2.c b/src/module/module_sdl2.c index 50aa7e1db27c9047342383ad885edc86d29aa72e..120ce9680049c67fbfb8cbe5eb9ca60c16131cd0 100644 --- a/src/module/module_sdl2.c +++ b/src/module/module_sdl2.c @@ -166,8 +166,10 @@ loop: break; case SDL_WINDOWEVENT: - if (event.window.event == SDL_WINDOWEVENT_EXPOSED) + if (event.window.event == SDL_WINDOWEVENT_EXPOSED) { + lkt_set_event_available(win->srv, lkt_event_play); redraw = 1; + } break; case SDL_KEYUP: diff --git a/src/net/listen.c b/src/net/listen.c index 04c4468243375b70f78c537f1f0f307360bde628..332edcb229a82606b6354ad2e181ab00fc7037f2 100644 --- a/src/net/listen.c +++ b/src/net/listen.c @@ -50,6 +50,12 @@ struct lkt_client { int continuation; }; +void +lkt_set_event_available(struct lkt_state *srv, enum lkt_event_type type) +{ + lkt_queue_make_available(&srv->queue, type); +} + static inline bool lkt_close_client(struct lkt_state *srv, size_t c) {