Re: GtkTreeView update problem
- From: Kristian Rietveld <kris gtk org>
- To: Joone Hur <joone kldp org>
- Cc: gtk-list gnome org
- Subject: Re: GtkTreeView update problem
- Date: Mon, 21 Sep 2009 16:38:14 +0200
Hi Joone,
On Mon, Sep 21, 2009 at 2:07 PM, Joone Hur <joone kldp org> wrote:
> In this case, if there are a lot of items, the middle part of tree
> view is not rendered properly during scrolling.
> I think if the height of gdkwindow in the treeview is over than
> 32767px, it seems not like being rendered well.
I have come across this problem before. Putting tree views in a view
port will cause the view port to create a very large X window (with a
height larger than 32768 pixels). Such large windows have to be
handled specially (see gtk+/x11/gdkgeometry-x11.c in the GTK+ source
code of versions 2.16.x and lower). I suspect there is a bug in the
geometry code causing this. I've started debugging this one day, but
have never finished it. GTK+ 2.18 introduces client side windows and
removes all the gdkgeometry code. Because of this, things work fine
under GTK+ 2.18 and the problem does not occur.
However, generally you should not put GtkTreeView (or any other
"scrollable" widget such as GtkIconView) in a box and then in a view
port. GtkTreeView, GtkIconView, etc have been designed to be put
*directly* into a GtkScrolledWindow. If you do not do so, several
things related to scrolling in the widget will be broken (for example,
keyboard navigation and programmatic scrolls using
gtk_tree_view_scroll_to_point()) and because such a large window will
have to be created, a lot of memory will be used. When put directly
into a GtkScrolledWindow, several "tricks" are used to avoid creating
such a large window, drastically reducing memory consumption and
making it possible to have lists with a very large amount of nodes.
Hope this helps.
regards,
-kris.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]