GNOME Bugzilla – Bug 112812
pan takes too long to toggle "tabbed layout"
Last modified: 2004-12-22 21:47:04 UTC
Hi, When toggling "tabbed layout" by using the "z" accelerator or choosing 'view' > 'tabbed layout', pan 0.14.0 gets stuck and takes much longer than previous versions. I can see pan consuming 100% cpu and displaying 'Sorting Articles', 'updating header pane, and 'filtering articles'. To reproduce, load a large binary group with more than 50,000 articles. Press 'z'. Pan should not need to sort, update, or filter headers when toggling the layout. Thank you for pan, Michael
This appears to be due to the style being reset when we change layout modes. I'm not sure how to fix it, hmm...
+ Trace 36844
The reason we rebuild the header pane when the widget's style changes is so that we can pick up new gtk+ themes when the user's changing from bluecurve to lighthouse to whatever. Since the reparent signal is emitted _after_ the widgets' styles are reset in gtk_widget_set_parent(), I don't think we can use clever signal registering to take care of this. Two possibilities: we could make the header pane's refresh lazy, so that the style changes will be applied the next time the user refreshes the header pane -- I don't like this -- or we could put an ugly hack into gui-notebook to temporarily turn off the header pane's style change listener when it's being added to the tabbed pane.
aha, during the reparenting the widget isn't realized, so we can test for that in deciding whether the style reset was triggered by the tabbed layout changing. Fixed in CVS: http://cvs.gnome.org/bonsai/cvsview2.cgi?diff_mode=context&whitespace_mode=show&subdir=pan/pan&command=DIFF_FRAMESET&file=articlelist.c&rev1=1.647&rev2=1.648&root=/cvs/gnome http://cvs.gnome.org/bonsai/cvsview2.cgi?diff_mode=context&whitespace_mode=show&subdir=pan&command=DIFF_FRAMESET&file=ANNOUNCE.html&rev1=1.177&rev2=1.178&root=/cvs/gnome