Re: Strange Gtk::TreeStore behaviour
- From: "Marco Scholten" <mscholtn xs4all nl>
- To: <ramashish lists gmail com>
- Cc: gtkmm-list gnome org
- Subject: Re: Strange Gtk::TreeStore behaviour
- Date: Sat, 17 Sep 2005 09:13:39 +0200
Hi,
I am encountering an unexpected behavior in Gtk::TreeStore. I am
connecting a handler to signal_row_expanded to refresh the row
contents. To do this, I am simply removing the old contents and adding
children again. But when I expand the row in GUI, it doesn't get
expanded at all to show the children!
What's happening here is that the row is expanded before on_row_expanded is
executed, you then remove the expanded children and add new ones, those new
children don't get expanded again.
You can observe this behaviour by changing on_row_expanded to:
void ExampleWindow::on_row_expanded(const Gtk::TreeModel::iterator & iter,
const Gtk::TreeModel::Path & path)
{
std::cout << "on_row_expanded" << std::endl;
while(Gtk::Main::events_pending()) Gtk::Main::iteration();
char a;
std::cin >> a;
std::cout << "removing children" << std::endl;
remove_children(*iter);
std::cout << "adding children" << std::endl;
add_children(*iter);
}
Fix it by connecting to signal_test_expand_row (this signal is emitted
before the row is expanded) and then return false from your signal handler.
--
Marco
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]