diff --git a/draw.c b/draw.c index ac5cb21..cce874c 100644 --- a/draw.c +++ b/draw.c @@ -247,6 +247,17 @@ void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 cairo_stroke(cr); } +#if !GTK_CHECK_VERSION(2, 22, 0) +cairo_surface_t *gdk_window_create_similar_surface(GdkWindow *window, cairo_content_t content, int width, int height) +{ + cairo_t *cairoContext = gdk_cairo_create(window); + cairo_surface_t *cairoSurface = cairo_get_target(cairoContext); + cairo_surface_t *newSurface = cairo_surface_create_similar(cairoSurface, content, width, height); + cairo_destroy(cairoContext); + return newSurface; +} +#endif // GTK_CHECK_VERSION(2, 22, 0) + void v3270_reload(GtkWidget *widget) { v3270 * terminal = GTK_V3270(widget); diff --git a/private.h b/private.h index f6ed1b7..60c77f2 100644 --- a/private.h +++ b/private.h @@ -202,8 +202,12 @@ void v3270_update_mouse_pointer(GtkWidget *widget); #if ! GTK_CHECK_VERSION(2,22,0) #define gtk_accessible_set_widget(a,w) g_object_set_data(G_OBJECT(a),"widget",w) #define gtk_accessible_get_widget(a) GTK_WIDGET(g_object_get_data(G_OBJECT(a),"widget")) + + G_GNUC_INTERNAL cairo_surface_t * gdk_window_create_similar_surface(GdkWindow *window, cairo_content_t content, int width, int height); + #endif // !GTK(2,22) + #if ! GTK_CHECK_VERSION(3,0,0) gboolean v3270_expose(GtkWidget * widget, GdkEventExpose *event); #endif // GTK 3 -- libgit2 0.21.2