diff --git a/gnoemoe/widgets/gm-world-input-view.c b/gnoemoe/widgets/gm-world-input-view.c index 5bcad7d..73a97ea 100644 --- a/gnoemoe/widgets/gm-world-input-view.c +++ b/gnoemoe/widgets/gm-world-input-view.c @@ -72,9 +72,15 @@ gm_world_input_view_set_text(GmWorldInputView *view, gchar *text, gint len) { GtkTextIter end; GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); + g_signal_handlers_block_by_func(buffer, on_gm_world_input_view_changed, + view); + gtk_text_buffer_set_text(buffer, text, len); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_place_cursor(buffer, &end); + + g_signal_handlers_unblock_by_func(buffer, on_gm_world_input_view_changed, + view); } static void @@ -129,7 +135,7 @@ gm_world_input_view_key_press_event(GtkWidget *widget, GdkEventKey *event) { if ((isUp && !view->priv->position->prev) || (!isUp && !view->priv->position->next)) { result = TRUE; - break; + break; } // If the current prefix is NULL then we set the new prefix to @@ -451,7 +457,7 @@ on_gm_world_input_view_changed(GtkTextBuffer *buffer, if (view->priv->prefix) { gtk_text_buffer_get_bounds(buffer, &start, &end); - + if (gtk_text_iter_equal(&start, &end)) { // Reset position to the last item in the history view->priv->position = g_list_last(*view->priv->history);