From e7d4a7f90d58e7e45bf690107b3615135ced357e Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 9 Mar 2001 13:28:26 +0000 Subject: Document expose event->region change and that gtk_widget_event doesn't 2001-03-09 Alexander Larsson * docs/Changes-2.0.txt: Document expose event->region change and that gtk_widget_event doesn't allow passing expose events. * gdk/gdkevents.h: Add region to expose event. * gdk/gdkevents.c: Handle event->region in gdk_event_copy() and gdk_event_free(). * gdk/gdkwindow.c (gdk_window_process_updates_internal): Generate expose_event->region when creating expose events. * gdk/x11/gdkevents-x11.c: Generate expose events with regions when translating X events. * gtk/gtkcontainer.[ch]: Default expose handler that propagates expose events to NO_WINDOW children. New function gtk_container_propagate_expose() * gtk/gtkwidget.[ch]: Moved gtk_widget_event implementation to gtk_widget_event_internal. gtk_widget_event calls gtk_widget_event_internal but doesn't allow expose events. New function gtk_widget_send_expose() to send expose events. New function gtk_widget_region_intersect() to calculate window/region intersections. * gtk/gtkmain.c (gtk_main_do_event): Use gdk_window_begin_paint_region() instead of gdk_window_begin_paint_rect(). Use gtk_widget_send_expose() to send expose events. * gtk/gtkbin.c: * gtk/gtkbox.c: * gtk/gtkfixed.c: * gtk/gtkimagemenuitem.c: * gtk/gtklist.c: * gtk/gtkpacker.c: * gtk/gtktable.c: * gtk/gtktree.c: Remove expose handler, using the default container implementation instead. * gtk/gtkbutton.c: * gtk/gtkcheckbutton.c: * gtk/gtkeventbox.c: * gtk/gtkfixed.c: * gtk/gtkhandlebox.c: * gtk/gtklayout.c: * gtk/gtklistitem.c: * gtk/gtkmenu.c: * gtk/gtkmenubar.c: * gtk/gtkmenuitem.c: * gtk/gtknotebook.c: * gtk/gtkoptionmenu.c: * gtk/gtkpaned.c: * gtk/gtkscrolledwindow.c: * gtk/gtktogglebutton.c: * gtk/gtktoolbar.c: * gtk/gtktreeitem.c: * gtk/gtkviewport.c: Chain expose handler to parent class handler. Use gtk_container_propagate_expose() to propagate exposes. * gtk/gtkclist.c (check_exposures): * gtk/gtktext.c (process_exposes): Use gtk_widget_send_expose instead of gtk_widget_event. --- gtk/gtkbox.c | 38 -------------------------------------- 1 file changed, 38 deletions(-) (limited to 'gtk/gtkbox.c') diff --git a/gtk/gtkbox.c b/gtk/gtkbox.c index e61d7a8a81..574eda52f9 100644 --- a/gtk/gtkbox.c +++ b/gtk/gtkbox.c @@ -51,8 +51,6 @@ static void gtk_box_set_arg (GtkObject *object, guint arg_id); static void gtk_box_map (GtkWidget *widget); static void gtk_box_unmap (GtkWidget *widget); -static gint gtk_box_expose (GtkWidget *widget, - GdkEventExpose *event); static void gtk_box_add (GtkContainer *container, GtkWidget *widget); static void gtk_box_remove (GtkContainer *container, @@ -126,7 +124,6 @@ gtk_box_class_init (GtkBoxClass *class) widget_class->map = gtk_box_map; widget_class->unmap = gtk_box_unmap; - widget_class->expose_event = gtk_box_expose; container_class->add = gtk_box_add; container_class->remove = gtk_box_remove; @@ -645,41 +642,6 @@ gtk_box_unmap (GtkWidget *widget) } } -static gint -gtk_box_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - GtkBox *box; - GtkBoxChild *child; - GdkEventExpose child_event; - GList *children; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_BOX (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - box = GTK_BOX (widget); - - child_event = *event; - - children = box->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_DRAWABLE (child->widget) && - GTK_WIDGET_NO_WINDOW (child->widget) && - gtk_widget_intersect (child->widget, &event->area, &child_event.area)) - gtk_widget_event (child->widget, (GdkEvent*) &child_event); - } - } - - return FALSE; -} - static void gtk_box_add (GtkContainer *container, GtkWidget *widget) -- cgit v1.2.1