summaryrefslogtreecommitdiff
path: root/gtk/gtkhandlebox.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@nuclecu.unam.mx>1999-03-09 21:26:57 +0000
committerArturo Espinosa <unammx@src.gnome.org>1999-03-09 21:26:57 +0000
commitac7b6805f4e21d37098391306107e57ebcc72803 (patch)
tree87ac14e29871569b0f66ae1b374f60d0bac18a2f /gtk/gtkhandlebox.c
parent91ed4f809f0f926c117e3ed7134c93af07779dba (diff)
downloadgtk+-ac7b6805f4e21d37098391306107e57ebcc72803.tar.gz
Significantly reduced the number of calls to gdk_draw_point() (and thus to
1999-03-09 Federico Mena Quintero <federico@nuclecu.unam.mx> * gtk/gtkstyle.c (gtk_default_draw_handle): Significantly reduced the number of calls to gdk_draw_point() (and thus to X) by clipping the points by hand. * gtk/gtkhandlebox.c (draw_textured_frame): Actually make use of the clip parameter. (gtk_handle_box_paint): Only paint the handle if the expose area intersects it.
Diffstat (limited to 'gtk/gtkhandlebox.c')
-rw-r--r--gtk/gtkhandlebox.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gtk/gtkhandlebox.c b/gtk/gtkhandlebox.c
index c64a94f8a4..30783ad601 100644
--- a/gtk/gtkhandlebox.c
+++ b/gtk/gtkhandlebox.c
@@ -690,7 +690,7 @@ draw_textured_frame (GtkWidget *widget, GdkWindow *window, GdkRectangle *rect, G
GdkRectangle *clip)
{
gtk_paint_handle(widget->style, window, GTK_STATE_NORMAL, shadow,
- NULL, widget, "handlebox",
+ clip, widget, "handlebox",
rect->x, rect->y, rect->width, rect->height,
GTK_ORIENTATION_VERTICAL);
}
@@ -740,6 +740,7 @@ gtk_handle_box_paint (GtkWidget *widget,
guint width;
guint height;
GdkRectangle rect;
+ GdkRectangle dest;
bin = GTK_BIN (widget);
hb = GTK_HANDLE_BOX (widget);
@@ -797,7 +798,10 @@ gtk_handle_box_paint (GtkWidget *widget,
break;
}
- draw_textured_frame (widget, hb->bin_window, &rect, GTK_SHADOW_OUT, event ? &event->area : area);
+ if (gdk_rectangle_intersect (event ? &event->area : area, &rect, &dest))
+ draw_textured_frame (widget, hb->bin_window, &rect,
+ GTK_SHADOW_OUT,
+ event ? &event->area : area);
if (bin->child && GTK_WIDGET_VISIBLE (bin->child))
{