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



On Thu, 22 Jul 2004 crypto_stonelock sympatico ca wrote:



From: Tristan Van Berkom <vantr touchtunes com>
Date: 2004/07/22 Thu AM 11:24:41 EST
To: crypto_stonelock sympatico ca
CC: Maciej Katafiasz <mnews22 wp pl>,  gtk-app-devel-list gnome org
Subject: 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.

Then again, I would agree if I was using it as is; but i'm not as it 
didn't exactly do what i wanted nor how i wanted. I'm patching up what 
it lacks manually and for scrolling, i'm using gtk_widget_hide/ 
gtk_widget_show where it applies to "simulate" scrolling. My problem 
isn't a GtkList problem, its the same redraw problem everybody gets 
from not using a backbuffer before redrawing. Its the same problem 
game programmers are confronted with every day since the dawn of man :).

um, why are you using show/hide to do scrolling?  the proper method is 
to pack the GtkList widget into a GtkScrolledWindow.  you may need to 
use gtk_scrolled_window_add_with_viewport(), as i don't recall if 
GtkList has its own viewport (my guess would be it doesn't).

        -brian




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