summaryrefslogtreecommitdiff
path: root/eel/eel-background-box.c
diff options
context:
space:
mode:
Diffstat (limited to 'eel/eel-background-box.c')
-rw-r--r--eel/eel-background-box.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/eel/eel-background-box.c b/eel/eel-background-box.c
index d0b80c4e..cb1a771e 100644
--- a/eel/eel-background-box.c
+++ b/eel/eel-background-box.c
@@ -30,23 +30,30 @@
G_DEFINE_TYPE (EelBackgroundBox, eel_background_box, GTK_TYPE_EVENT_BOX)
static gboolean
-eel_background_box_draw (GtkWidget *widget,
#if GTK_CHECK_VERSION (3, 0, 0)
+eel_background_box_draw (GtkWidget *widget,
cairo_t *cr)
#else
- GdkEventExpose *event)
+eel_background_box_expose_event (GtkWidget *widget,
+ GdkEventExpose *event)
#endif
{
-#if GTK_CHECK_VERSION (3, 0, 0)
+#if !GTK_CHECK_VERSION (3, 0, 0)
+ cairo_t *cr = gdk_cairo_create (event->window);
+
+ gdk_cairo_rectangle (cr, &event->area);
+ cairo_clip (cr);
+#endif
eel_background_draw (widget, cr);
+#if GTK_CHECK_VERSION (3, 0, 0)
gtk_container_propagate_draw (GTK_CONTAINER (widget),
gtk_bin_get_child (GTK_BIN (widget)),
cr);
#else
- eel_background_draw (widget, event);
gtk_container_propagate_expose (GTK_CONTAINER (widget),
gtk_bin_get_child (GTK_BIN (widget)),
event);
+ cairo_destroy (cr);
#endif
return TRUE;
}
@@ -60,12 +67,12 @@ static void
eel_background_box_class_init (EelBackgroundBoxClass *klass)
{
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-
#if GTK_CHECK_VERSION (3, 0, 0)
widget_class->draw = eel_background_box_draw;
#else
- widget_class->expose_event = eel_background_box_draw;
+ widget_class->expose_event = eel_background_box_expose_event;
#endif
+
}
GtkWidget*