diff options
author | Owen Taylor <otaylor@redhat.com> | 2001-11-04 22:57:03 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2001-11-04 22:57:03 +0000 |
commit | 21457ced17e61cf260e83a64152fe4573a2883da (patch) | |
tree | 73fd9a02301ff278680f3761fec932a32b2e4ee1 /gtk/gtkwidget.h | |
parent | bc5849a5e0d3c30a781cd433691bf3caef989c12 (diff) | |
download | gtk+-21457ced17e61cf260e83a64152fe4573a2883da.tar.gz |
Add a function gdk_window_invalidate_maybe_recurse() for use in "shallow
Sun Nov 4 16:02:08 2001 Owen Taylor <otaylor@redhat.com>
* gdk/gdkwindow.[ch]: Add a function gdk_window_invalidate_maybe_recurse()
for use in "shallow invalidation" of a widget. (Windows belonging
to the widget, but not to the widget's children)
* gtk/gtkprivate.h gtk/gtkwidget.c gtk/gtksizegroup.c: Add private
flags GTK_ALLOC_NEEDED, GTK_REQUEST_NEEDED. These flags are set
up on ancestors up to the resize container on queue_resize. Size
requests only actually take place if GTK_REQUEST_NEEDED, size
allocations only take place if GTK_ALLOC_NEEDED or the size
changed.
* gtk/gtkcontainer.c gtk/gtkwidget.c: Remove
container->resize_widgets and the RESIZE_NEEDED flag since the
above flags are sufficient to figure out what needs to be
resized/reallocated. Remove code manipulating
container->resize_widget.
* gtk/gtkwidget.[ch]: Add gtk_widget_set_redraw_on_alloc(); this
allows widgets to turn off being automatically invalidated is when
they are resized.
* gtk/gtkwidget.[ch] (gtk_widget_size_allocate): Invalidation when
a widget is resized or moved is "shallow" as described above -
only the windows that need to be invalidated are invalidated.
* gtk/gtkbox.c gtk/gtktable.c gtk/gtkalignment.c docs/Changes-2.0.txt:
Make these widget's init functions call
gtk_widget_set_redraw_on_allocate(widget,FALSE).
* gtk/gtkwindow.c (gtk_window_configure_event): Call
_gtk_container_queue_resize(), since we don't want
redrawing. (Probably could be done for other
calls to gtk_widget_queue_resize() in gtkwindow.c,
but this is the most important one.)
* gtk/gtkwindow.c (gtk_window_move_resize): Don't call
gtk_widget_queue_draw() - size_allocate() handles
that as appropriate.
* gtk/gtkframe.c (gtk_frame_size_allocate): Invalidate instead
of queue_clear() to avoid invalidating children.
Diffstat (limited to 'gtk/gtkwidget.h')
-rw-r--r-- | gtk/gtkwidget.h | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index 111c779268..3d9969a249 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -539,25 +539,27 @@ gboolean gtk_widget_is_focus (GtkWidget *widget); void gtk_widget_grab_focus (GtkWidget *widget); void gtk_widget_grab_default (GtkWidget *widget); -void gtk_widget_set_name (GtkWidget *widget, - const gchar *name); -G_CONST_RETURN gchar* gtk_widget_get_name (GtkWidget *widget); -void gtk_widget_set_state (GtkWidget *widget, - GtkStateType state); -void gtk_widget_set_sensitive (GtkWidget *widget, - gboolean sensitive); -void gtk_widget_set_app_paintable (GtkWidget *widget, - gboolean app_paintable); -void gtk_widget_set_double_buffered (GtkWidget *widget, - gboolean double_buffered); -void gtk_widget_set_parent (GtkWidget *widget, - GtkWidget *parent); -void gtk_widget_set_parent_window (GtkWidget *widget, - GdkWindow *parent_window); -void gtk_widget_set_child_visible (GtkWidget *widget, - gboolean is_visible); -gboolean gtk_widget_get_child_visible (GtkWidget *widget); - +void gtk_widget_set_name (GtkWidget *widget, + const gchar *name); +G_CONST_RETURN gchar* gtk_widget_get_name (GtkWidget *widget); +void gtk_widget_set_state (GtkWidget *widget, + GtkStateType state); +void gtk_widget_set_sensitive (GtkWidget *widget, + gboolean sensitive); +void gtk_widget_set_app_paintable (GtkWidget *widget, + gboolean app_paintable); +void gtk_widget_set_double_buffered (GtkWidget *widget, + gboolean double_buffered); +void gtk_widget_set_redraw_on_allocate (GtkWidget *widget, + gboolean redraw_on_allocate); +void gtk_widget_set_parent (GtkWidget *widget, + GtkWidget *parent); +void gtk_widget_set_parent_window (GtkWidget *widget, + GdkWindow *parent_window); +void gtk_widget_set_child_visible (GtkWidget *widget, + gboolean is_visible); +gboolean gtk_widget_get_child_visible (GtkWidget *widget); + GtkWidget *gtk_widget_get_parent (GtkWidget *widget); GdkWindow *gtk_widget_get_parent_window (GtkWidget *widget); gboolean gtk_widget_child_focus (GtkWidget *widget, |