From: Marijn van Vliet Date: Sat, 18 Jun 2011 16:44:19 +0000 (+0200) Subject: Fixed #31 X-Git-Tag: v0.9~73^2~4 X-Git-Url: https://git.stderr.nl/gitweb?p=projects%2Fchimara%2Fchimara.git;a=commitdiff_plain;h=20433d88f15209b2f7398ccec7500de9b900cbcc Fixed #31 --- diff --git a/libchimara/input.c b/libchimara/input.c index 95a2aa4..653d9c1 100644 --- a/libchimara/input.c +++ b/libchimara/input.c @@ -23,7 +23,15 @@ request_char_event_common(winid_t win, gboolean unicode) flush_window_buffer(win); - ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); + if(win->type == wintype_TextBuffer) { + /* Move the input_position mark to the end of the window_buffer */ + GtkTextBuffer *buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(win->widget) ); + GtkTextMark *input_position = gtk_text_buffer_get_mark(buffer, "input_position"); + GtkTextIter end_iter; + gtk_text_buffer_get_end_iter(buffer, &end_iter); + gtk_text_buffer_move_mark(buffer, input_position, &end_iter); + } + win->input_request_type = unicode? INPUT_REQUEST_CHARACTER_UNICODE : INPUT_REQUEST_CHARACTER; g_signal_handler_unblock( win->widget, win->char_input_keypress_handler ); @@ -33,6 +41,7 @@ request_char_event_common(winid_t win, gboolean unicode) gdk_threads_leave(); /* Emit the "waiting" signal to let listeners know we are ready for input */ + ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); g_signal_emit_by_name(glk_data->self, "waiting"); }