Re: Help with flickering widgets when showing and hiding!!



crypto > Alright i'll restate my problem without talking about the GtkList.

I know, it must have been said before but, just because a GtkList *is* a
GtkWidget (in OO terms), it doesn't mean that it behaves the same way as
any other widget, I glanced at the source and the GtkList is quite a beast.

for instance, look what it implements on its own:

  gobject_class->dispose = gtk_list_dispose;
  object_class->set_arg = gtk_list_set_arg;
  object_class->get_arg = gtk_list_get_arg;
  widget_class->unmap = gtk_list_unmap;
  widget_class->style_set = gtk_list_style_set;
  widget_class->realize = gtk_list_realize;
  widget_class->button_press_event = gtk_list_button_press;
  widget_class->button_release_event = gtk_list_button_release;
  widget_class->motion_notify_event = gtk_list_motion_notify;
  widget_class->size_request = gtk_list_size_request;
  widget_class->size_allocate = gtk_list_size_allocate;
  widget_class->drag_begin = gtk_list_drag_begin;
  widget_class->focus = gtk_list_focus;
  container_class->add = gtk_list_add;
  container_class->remove = gtk_list_remove;
  container_class->forall = gtk_list_forall;
  container_class->child_type = gtk_list_child_type;
  container_class->set_focus_child = gtk_list_set_focus_child;
  class->selection_changed = NULL;
  class->select_child = gtk_real_list_select_child;
  class->unselect_child = gtk_real_list_unselect_child;

This is an old old container implementation that should be avoided
at all costs.

So I'll assume that you have tested your scenario and that you have
the same problem with, say a GtkWindow with some GtkButtons inside.

crypto > I'm having problems with flickering when using
crypto > gtk_widget_show/gtk_widget_hide. Is there any way to avoid flickering
crypto > by maybe having the whole screen redrawn at once or something similar?

I get a similar problem when displaying a GtkWindow with 12 album jackets,
I would like the entire screen to show up at once "blam" prerendered, I guess a
little tweaking (maybe a custom implementation of the GtkWindow with an extra
back buffer and a custom expose handler, I dunno) would do the trick, but so
far I havent had any luck (there is a slightly perceptable "filling" of the
screen widget by widget).

So, Can you have your entire screen redrawn at once ? Not for free,
you'll have to write that up yourself (and if your feeling generous,
you could post that source ;-) )

As far as child widgets (or list items) in a gtk list go, if they are
less performant than child widgets of a non-depricated GtkContainer,
you can definitly blame that on the GtkList.

Cheers,
                                  -Tristan





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