[Gtk-sharp-list] NodeView row refreshes only when there's
scottellington at comcast.net
Wed Nov 30 12:26:58 EST 2005
You can call NodeView.QueueDraw to force a redraw of the widget. I
tried it in your code and it works.
On Wed, 2005-11-30 at 17:51 +0000, Archie Maskill wrote:
> Hey everyone -
> I have a NodeView, populated with some nodes. A value in one of the
> nodes is changed, but this change is not reflected visually until I
> move the mouse into (or out of) the offending row. Moving the mouse
> strictly within the offending row has no effect.
> The closest thing I've found to someone mentioning this problem is in
> this thread : http://lists.ximian.com/pipermail/gtk-sharp-list/2004-November/005099.html
> I'm doing much the same thing that this chap describes, and making
> sure to use ThreadNotify sensibly. It seems it was accepted that the
> problem was a multiple-thread-related one, but I've managed to
> reproduce it using a very simple single-thread example. I've reduced
> this to the simplest possible situation and included it below.
> This happens on both Windows 2000 and Linux.
> Is this a bug? Or is it done for reasons of efficiency, and I'm
> supposed to call some kind of refresh method once I've made a change
> to a node's value? What do other people do to get round this?
> Thanks in advance!
> - Archie
> using Gtk;
> using System;
> public class MyTreeNode : Gtk.TreeNode
> [Gtk.TreeNodeValue (Column=0)]
> public string variable;
> public MyTreeNode (string var)
> variable = var;
> public class MainClass
> static MyTreeNode node_to_change;
> public static void Main()
> Window w = new Window("Window Title");
> VBox v0 = new VBox();
> NodeStore store = new NodeStore( typeof(MyTreeNode) );
> node_to_change = new MyTreeNode("Click button then point at this");
> store.AddNode( node_to_change );
> NodeView view = new NodeView( store );
> view.AppendColumn("Column header", new CellRendererText(), "text", 0);
> Button button = new Button("button");
> button.Clicked += new EventHandler( clickHandler );
> public static void clickHandler( object sender, EventArgs args)
> ((MyTreeNode)node_to_change).variable = "Changed!";
> Gtk-sharp-list maillist - Gtk-sharp-list at lists.ximian.com
Scott Ellington <scottellington at comcast.net>
More information about the Gtk-sharp-list