GtkNotebook problems in Galeon (slow tab switching, etc.)



Hi, we've been noticing some weird behavior on the part of the GtkNotebook
widget while using it for "tabbed browsing" in the Galeon web browser.  The
way we're using the notebook is as follows:

We're packing a notebook into each window.  Each page of the notebook has a
GtkMozEmbed in its body, and an hbox containing a text label and
(optionally) a button as its tab label.

Quite often, after a number of pages have been added and removed from the
notebook, tab-related options like creating new tabs and switching between
pages become very slow.  The really weird thing is that the content of the
notebook always switches immediately to the correct GtkMozEmbed when
clicking on a new tab; it's the just the redraw of the tabs themselves that
takes a long time.  Sometimes, the redraw doesn't even finish correctly,
and several tabs are left in partially-drawn states.  If I create a new
window at this point, with its own new notebook, the tab switching will be
normal in it.  The delay in the switching also seems to sometimes go away
after using the notebook for a while longer.  I haven't found any way to
reliable reproduce the delays yet, unfortunately.

At first I was thinking that this behavior was somehow caused by the way
that we're packing multiple widgets (including a button with its own gdk
window) into the tab, but after modifying the code to eliminate the hboxes
and buttons, I was still experiencing the delays after using Galeon for a
while.

Possibly related to this, users who choose to display the tabs in alternate
locations, such as at the bottom of the notebook, are often experiencing
problems with the labels suddenly not getting drawn in the tabs after using
the program for a while.  I haven't tested whether this goes away after
removing the hboxes and closebuttons.

Has anyone else seen anything similar to this?  Anyone have any guesses as
to why these things are happening?  gtknotebook.c is pretty big. :)

Thanks in advance,

Daniel




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]