Search code examples
gtkcairogtk2

GtkDrawingArea using Cairo doesn't apply in Windows 7


I work with GTK+ 2.24 in Windows 7 64-bit and Fedora 21 64-bit. I painted a drawing area to white, using Cairo. It works in Fedora, but not in Windows. Does anyone know the reason?

Here is my code:

static gboolean draw_background_cb(GtkWidget *widget _U_, cairo_t *cr, gpointer data _U_)
{
    /* Set background color */
    cairo_set_source_rgb(cr, 1, 1, 1);
    cairo_rectangle(cr, 0, 0, 300, 300);
    cairo_paint(cr);
    return FALSE;
}

int main(int argc, char *argv[])
{
    GtkWidget *window;

    gtk_init(&argc, &argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    g_signal_connect(window, "draw", G_CALLBACK (draw_background), NULL);

    gtk_widget_show(window);

    gtk_main();

    return 0;
}

Solution

  • GTK+ 2 uses expose-event instead of draw for drawing. I don't know what the other differences are; sorry.