Make GdkDrawable draw_drawable backwards compat
Turns out pygtk build broke due to the argument addition to draw_drawable. So, we now add a new vfunc for the new draw_drawable and are thus backwards compat.
This commit is contained in:
@ -668,13 +668,21 @@ gdk_draw_drawable (GdkDrawable *drawable,
|
||||
windows. We should clip that and (for windows with bg != None) clear that
|
||||
area in the destination instead. */
|
||||
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable (drawable, gc,
|
||||
composite_impl,
|
||||
xsrc - composite_x_offset,
|
||||
ysrc - composite_y_offset,
|
||||
xdest, ydest,
|
||||
width, height,
|
||||
src);
|
||||
if (GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable_with_src)
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable_with_src (drawable, gc,
|
||||
composite_impl,
|
||||
xsrc - composite_x_offset,
|
||||
ysrc - composite_y_offset,
|
||||
xdest, ydest,
|
||||
width, height,
|
||||
src);
|
||||
else /* backwards compat for old out-of-tree implementations of GdkDrawable (are there any?) */
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable (drawable, gc,
|
||||
composite_impl,
|
||||
xsrc - composite_x_offset,
|
||||
ysrc - composite_y_offset,
|
||||
xdest, ydest,
|
||||
width, height);
|
||||
|
||||
g_object_unref (composite);
|
||||
}
|
||||
|
@ -105,8 +105,7 @@ struct _GdkDrawableClass
|
||||
gint xdest,
|
||||
gint ydest,
|
||||
gint width,
|
||||
gint height,
|
||||
GdkDrawable *original_src);
|
||||
gint height);
|
||||
void (*draw_points) (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
GdkPoint *points,
|
||||
@ -210,6 +209,17 @@ struct _GdkDrawableClass
|
||||
int width,
|
||||
int height);
|
||||
|
||||
void (*draw_drawable_with_src) (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
GdkDrawable *src,
|
||||
gint xsrc,
|
||||
gint ysrc,
|
||||
gint xdest,
|
||||
gint ydest,
|
||||
gint width,
|
||||
gint height,
|
||||
GdkDrawable *original_src);
|
||||
|
||||
/* Padding for future expansion */
|
||||
void (*_gdk_reserved7) (void);
|
||||
void (*_gdk_reserved9) (void);
|
||||
@ -219,7 +229,6 @@ struct _GdkDrawableClass
|
||||
void (*_gdk_reserved13) (void);
|
||||
void (*_gdk_reserved14) (void);
|
||||
void (*_gdk_reserved15) (void);
|
||||
void (*_gdk_reserved16) (void);
|
||||
};
|
||||
|
||||
struct _GdkTrapezoid
|
||||
|
@ -1224,7 +1224,7 @@ gdk_offscreen_window_class_init (GdkOffscreenWindowClass *klass)
|
||||
drawable_class->draw_polygon = gdk_offscreen_window_draw_polygon;
|
||||
drawable_class->draw_text = gdk_offscreen_window_draw_text;
|
||||
drawable_class->draw_text_wc = gdk_offscreen_window_draw_text_wc;
|
||||
drawable_class->draw_drawable = gdk_offscreen_window_draw_drawable;
|
||||
drawable_class->draw_drawable_with_src = gdk_offscreen_window_draw_drawable;
|
||||
drawable_class->draw_points = gdk_offscreen_window_draw_points;
|
||||
drawable_class->draw_segments = gdk_offscreen_window_draw_segments;
|
||||
drawable_class->draw_lines = gdk_offscreen_window_draw_lines;
|
||||
|
@ -203,7 +203,7 @@ gdk_pixmap_class_init (GdkPixmapObjectClass *klass)
|
||||
drawable_class->draw_polygon = gdk_pixmap_draw_polygon;
|
||||
drawable_class->draw_text = gdk_pixmap_draw_text;
|
||||
drawable_class->draw_text_wc = gdk_pixmap_draw_text_wc;
|
||||
drawable_class->draw_drawable = gdk_pixmap_draw_drawable;
|
||||
drawable_class->draw_drawable_with_src = gdk_pixmap_draw_drawable;
|
||||
drawable_class->draw_points = gdk_pixmap_draw_points;
|
||||
drawable_class->draw_segments = gdk_pixmap_draw_segments;
|
||||
drawable_class->draw_lines = gdk_pixmap_draw_lines;
|
||||
|
@ -419,7 +419,7 @@ gdk_window_class_init (GdkWindowObjectClass *klass)
|
||||
drawable_class->draw_polygon = gdk_window_draw_polygon;
|
||||
drawable_class->draw_text = gdk_window_draw_text;
|
||||
drawable_class->draw_text_wc = gdk_window_draw_text_wc;
|
||||
drawable_class->draw_drawable = gdk_window_draw_drawable;
|
||||
drawable_class->draw_drawable_with_src = gdk_window_draw_drawable;
|
||||
drawable_class->draw_points = gdk_window_draw_points;
|
||||
drawable_class->draw_segments = gdk_window_draw_segments;
|
||||
drawable_class->draw_lines = gdk_window_draw_lines;
|
||||
|
@ -661,7 +661,7 @@ gdk_drawable_impl_quartz_class_init (GdkDrawableImplQuartzClass *klass)
|
||||
drawable_class->draw_polygon = gdk_quartz_draw_polygon;
|
||||
drawable_class->draw_text = gdk_quartz_draw_text;
|
||||
drawable_class->draw_text_wc = gdk_quartz_draw_text_wc;
|
||||
drawable_class->draw_drawable = gdk_quartz_draw_drawable;
|
||||
drawable_class->draw_drawable_with_src = gdk_quartz_draw_drawable;
|
||||
drawable_class->draw_points = gdk_quartz_draw_points;
|
||||
drawable_class->draw_segments = gdk_quartz_draw_segments;
|
||||
drawable_class->draw_lines = gdk_quartz_draw_lines;
|
||||
|
@ -180,7 +180,7 @@ gdk_drawable_impl_win32_class_init (GdkDrawableImplWin32Class *klass)
|
||||
drawable_class->draw_polygon = gdk_win32_draw_polygon;
|
||||
drawable_class->draw_text = gdk_win32_draw_text;
|
||||
drawable_class->draw_text_wc = gdk_win32_draw_text_wc;
|
||||
drawable_class->draw_drawable = gdk_win32_draw_drawable;
|
||||
drawable_class->draw_drawable_with_src = gdk_win32_draw_drawable;
|
||||
drawable_class->draw_points = gdk_win32_draw_points;
|
||||
drawable_class->draw_segments = gdk_win32_draw_segments;
|
||||
drawable_class->draw_lines = gdk_win32_draw_lines;
|
||||
|
@ -160,7 +160,7 @@ _gdk_drawable_impl_x11_class_init (GdkDrawableImplX11Class *klass)
|
||||
drawable_class->draw_polygon = gdk_x11_draw_polygon;
|
||||
drawable_class->draw_text = gdk_x11_draw_text;
|
||||
drawable_class->draw_text_wc = gdk_x11_draw_text_wc;
|
||||
drawable_class->draw_drawable = gdk_x11_draw_drawable;
|
||||
drawable_class->draw_drawable_with_src = gdk_x11_draw_drawable;
|
||||
drawable_class->draw_points = gdk_x11_draw_points;
|
||||
drawable_class->draw_segments = gdk_x11_draw_segments;
|
||||
drawable_class->draw_lines = gdk_x11_draw_lines;
|
||||
|
Reference in New Issue
Block a user