g_return_if_fail(win->input_request_type == INPUT_REQUEST_NONE);
g_return_if_fail(win->type != wintype_TextBuffer || win->type != wintype_TextGrid);
+ flush_window_buffer(win);
+
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+
win->input_request_type = unicode? INPUT_REQUEST_CHARACTER_UNICODE : INPUT_REQUEST_CHARACTER;
g_signal_handler_unblock( G_OBJECT(win->widget), win->keypress_handler );
gtk_widget_grab_focus( GTK_WIDGET(win->widget) );
gdk_threads_leave();
+
+ /* Emit the "waiting" signal to let listeners know we are ready for input */
+ g_signal_emit_by_name(glk_data->self, "waiting");
}
/**
static void
text_buffer_request_line_event_common(winid_t win, glui32 maxlen, gboolean insert, gchar *inserttext)
{
+ flush_window_buffer(win);
+
gdk_threads_enter();
GtkTextBuffer *buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(win->widget) );
break;
}
g_free(inserttext);
+
+ /* Emit the "waiting" signal to let listeners know we are ready for input */
+ g_signal_emit_by_name(glk_data->self, "waiting");
}
/**
break;
}
g_free(utf8);
+
+ /* Emit the "waiting" signal to let listeners know we are ready for input */
+ g_signal_emit_by_name(glk_data->self, "waiting");
}
/**