X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fevent.c;h=199a837eae0343d2958773380da3757466960990;hb=cdb84c7c776f214f41ba1a509efb2494e7ed1baf;hp=1bcdcd9b872ab26a0f3e581d68bf2b8e87eee5c5;hpb=2090f5576f520435b22417c3246ad2286d95a391;p=projects%2Fchimara%2Fchimara.git diff --git a/libchimara/event.c b/libchimara/event.c index 1bcdcd9..199a837 100644 --- a/libchimara/event.c +++ b/libchimara/event.c @@ -147,11 +147,15 @@ glk_select(event_t *event) { g_return_if_fail(event != NULL); + /* Flush all window buffers */ + winid_t win; + for(win = glk_window_iterate(NULL, NULL); win != NULL; win = glk_window_iterate(win, NULL)) { + if(win->type == wintype_TextBuffer || win->type == wintype_TextGrid) + flush_window_buffer(win); + } + ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); - - /* Emit the "waiting" signal to let listeners know we are ready for input */ - g_signal_emit_by_name(glk_data->self, "waiting"); - + get_appropriate_event(event); /* Check for interrupt */ @@ -235,6 +239,9 @@ glk_select_poll(event_t *event) ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); event->type = evtype_None; + event->win = NULL; + event->val1 = 0; + event->val2 = 0; g_mutex_lock(glk_data->event_lock);