Fixed grid line input bug introduced in [9f52ac]
[projects/chimara/chimara.git] / libchimara / input.c
index 6003f501bf7bff13a239e44a07a4ee232794ffb4..b43eae9b42c82055cb2ee0587ec9f2d5cf3f5694 100644 (file)
@@ -91,6 +91,10 @@ glk_cancel_char_event(winid_t win)
 static void
 text_grid_request_line_event_common(winid_t win, glui32 maxlen, gboolean insert, gchar *inserttext)
 {
+       /* All outstanding printing _must_ be finished before putting an input entry
+        into the buffer */
+       flush_window_buffer(win);
+
        gdk_threads_enter();
 
        GtkTextBuffer *buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(win->widget) );
@@ -549,6 +553,7 @@ on_line_input_key_press_event(GtkWidget *widget, GdkEventKey *event, winid_t win
                                GtkTextIter end;
                                gtk_text_buffer_get_end_iter(buffer, &end);
                                gtk_text_buffer_insert(buffer, &end, "\n", 1);
+                               gtk_text_buffer_place_cursor(buffer, &end);
 
                                /* Make the window uneditable again and retrieve the text that was input */
                                gtk_text_view_set_editable(GTK_TEXT_VIEW(win->widget), FALSE);