I've run into this before myself [1]. Seems to happen only when you add the
Textview to an already show()n parent, as you are doing by adding it with a
button click.

I gave up and used a label. They work fine.

[1]
https://mail.gnome.org/archives/gtk-devel-list/2012-September/msg00034.html


On Sun, Nov 18, 2012 at 12:28 PM, Johan Mattsson <johan.mattsso...@gmail.com
> wrote:

> Hi
> I am working on a GTK application that creates a form with many text
> areas in it. It seems to work fine until I add my widgets to a
> scrolled pane. Like this:
>
> test.vala:
>
> using Gtk;
>
> class MainWindow : Gtk.Window {
>
>         Box vbox = new Box (Orientation.VERTICAL, 5);
>
>         public MainWindow () {
>                 set_default_size (700, 600);
>
>                 Button b = new Button ();
>                 b.clicked.connect (add_text_field);
>                 vbox.pack_start (b, false, false, 0);
>
>                 ScrolledWindow scrolled = new ScrolledWindow (null, null);
>                 scrolled.set_policy (PolicyType.AUTOMATIC,
> PolicyType.AUTOMATIC);
>                 scrolled.add_with_viewport (vbox);
>
>                 add (scrolled);
>                 show_all ();
>         }
>
>         void add_text_field () {
>                 TextView text_view1 = new TextView ();
>                 TextBuffer text_buffer = new TextBuffer (null);
>                 text_buffer.set_text ("""A long text ... A long text ... A
> long text
> ... A long text ... A long text ... A long text ... A long text ... A
> long text ... A long text ... A long text ... A long text ... A long
> text ... A long text ... A long text ... A long text ... A long text
> ... A long text ... A long text ... A long text ... A long text ... A
> long text ... A long text ... A long text ... A long text ... A long
> text ... A long text ... A long text ... A long text ... A long text
> ... A long text ... A long text ... A long text ... A long text ... A
> long text ... A long text ... A long text ... A long text ... A long
> text ... A long text """);
>
>                 text_view1.set_wrap_mode (WrapMode.WORD);
>                 text_view1.set_buffer (text_buffer);
>
>                 vbox.pack_start (new Label ("New text view"), false,
> false, 0);
>                 vbox.pack_start (text_view1, false, false, 0);
>                 show_all ();
>         }
> }
>
> public static void main(string[] args) {
>         MainWindow m;
>         Gtk.init (ref args);
>         m = new MainWindow ();
>         Gtk.main ();
> }
>
> Compile with valac test.vala --pkg gtk+-3.0
>
> The height of the TextView is twice the number of lines in the box
> when TextView is added to the box. GTK will resize TextView when it
> gets focus.
> Is there a way to force GTK to recalculate the size of TextView before
> it receives focus?
> /Johan
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to