On Mar 16, 2009, at 2:59 AM, Matthew Braid wrote:
I initially tried using $treeview->get_visible_range and $treeview->scroll_to_cell, but get_visible_range seems to be a little flakey on my system and often aborts with a message about some assertion failing (something != nil I think). So after realising that eval {} over a failed Gtk assertion just doesn't work (yay), I tried directly manipulating the scrollbars instead.
Were you asking for the visible range after having removed the model?
On store, I do this: $store{POS} = $list->get_vadjustment->get_value; and on restore I: $list->get_vadjustment->set_value($store{POS}); This doesn't error, but it also doesn't do anything - scrollbar steadfastly stays where it is.
You may need to wait for the adjustment change to take effect. Try setting the new scrollbar positions in an idle handler. This may result in undesirable flicker, in which case, your next idea isn't terribly inappropriate.
I starting looking into storing the coords of the currently visible cells and using scroll_to_point, but now I'm dealing with screen coordinates and that seems a bit low level for what should simply be 'scroll to this entry in the list'.
Well, if you want it to look to the user as though the view is just as he left it, then simply scrolling a certain row onscreen may not be sufficient. If i understand correctly, when you scroll to the list item, it's somewhat random as to where it will be (depends on your parameters). So, scroll to point isn't that bad of a compromise.
What is it that I'm missing?
You might try asking on gtk-app-devel-list, as this is a general gtk+ question, not restricted to perl.
-- Sallah! I said no camels! That's five camels! Can't you count? -- Indiana Jones _______________________________________________ gtk-perl-list mailing list gtk-perl-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-perl-list