"autoscroll down" für textview scrollt wieder zurück



  • Hallo,

    das GtkTextView wird so initialisiert:

    pOutputView = gtk_text_view_new();
    gtk_text_view_set_border_window_size(GTK_TEXT_VIEW(pOutputView), GTK_TEXT_WINDOW_TEXT, 1);
    gtk_text_view_set_editable(GTK_TEXT_VIEW(pOutputView), false);
    
    pOutputWindow = gtk_scrolled_window_new( NULL, NULL);
    
    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pOutputWindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
    
    gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(pOutputWindow), pOutputView);
    
    pOutputBuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(pOutputView));
    

    Eine Zeile wird in den Buffer geschrieben und dann soll ans Ende gescrollt werden:

    GtkTextIter    iterEnd;
    gtk_text_buffer_get_end_iter(pOutputBuffer, &iterEnd);
    gtk_text_buffer_insert(pOutputBuffer, &iterEnd, szOutput, -1);
    
    // scroll down
    gtk_text_buffer_get_end_iter(pOutputBuffer, &iterEnd);
    GtkTextMark    *pMarkEnd = gtk_text_buffer_get_mark(pOutputBuffer, MARK_END_NAME);
    gtk_text_buffer_move_mark(pOutputBuffer, pMarkEnd, &iterEnd);
    gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(pOutputView), pMarkEnd, 0, false, 0, 0);
    

    ... aber es funktioniert nicht. Man sieht die View für Millisekunden hinunterscrollen jedoch dann sofort wieder an die Ausgangsposition zurück.

    Hat jemand dazu eine Idee?

    lg,
    R

    ps: gtk version 2.6.10



  • Hallo,

    mir fehlt grad' die Zeit, um mich näher damit zu beschäftigen, aber kennst du: http://www.bravegnu.org/gtktext/x276.html#AEN336

    Cheers

    GPC


Anmelden zum Antworten