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
|
windows. We should clip that and (for windows with bg != None) clear that
|
||||||
area in the destination instead. */
|
area in the destination instead. */
|
||||||
|
|
||||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable (drawable, gc,
|
if (GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable_with_src)
|
||||||
composite_impl,
|
GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable_with_src (drawable, gc,
|
||||||
xsrc - composite_x_offset,
|
composite_impl,
|
||||||
ysrc - composite_y_offset,
|
xsrc - composite_x_offset,
|
||||||
xdest, ydest,
|
ysrc - composite_y_offset,
|
||||||
width, height,
|
xdest, ydest,
|
||||||
src);
|
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);
|
g_object_unref (composite);
|
||||||
}
|
}
|
||||||
|
@ -105,8 +105,7 @@ struct _GdkDrawableClass
|
|||||||
gint xdest,
|
gint xdest,
|
||||||
gint ydest,
|
gint ydest,
|
||||||
gint width,
|
gint width,
|
||||||
gint height,
|
gint height);
|
||||||
GdkDrawable *original_src);
|
|
||||||
void (*draw_points) (GdkDrawable *drawable,
|
void (*draw_points) (GdkDrawable *drawable,
|
||||||
GdkGC *gc,
|
GdkGC *gc,
|
||||||
GdkPoint *points,
|
GdkPoint *points,
|
||||||
@ -210,6 +209,17 @@ struct _GdkDrawableClass
|
|||||||
int width,
|
int width,
|
||||||
int height);
|
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 */
|
/* Padding for future expansion */
|
||||||
void (*_gdk_reserved7) (void);
|
void (*_gdk_reserved7) (void);
|
||||||
void (*_gdk_reserved9) (void);
|
void (*_gdk_reserved9) (void);
|
||||||
@ -219,7 +229,6 @@ struct _GdkDrawableClass
|
|||||||
void (*_gdk_reserved13) (void);
|
void (*_gdk_reserved13) (void);
|
||||||
void (*_gdk_reserved14) (void);
|
void (*_gdk_reserved14) (void);
|
||||||
void (*_gdk_reserved15) (void);
|
void (*_gdk_reserved15) (void);
|
||||||
void (*_gdk_reserved16) (void);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GdkTrapezoid
|
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_polygon = gdk_offscreen_window_draw_polygon;
|
||||||
drawable_class->draw_text = gdk_offscreen_window_draw_text;
|
drawable_class->draw_text = gdk_offscreen_window_draw_text;
|
||||||
drawable_class->draw_text_wc = gdk_offscreen_window_draw_text_wc;
|
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_points = gdk_offscreen_window_draw_points;
|
||||||
drawable_class->draw_segments = gdk_offscreen_window_draw_segments;
|
drawable_class->draw_segments = gdk_offscreen_window_draw_segments;
|
||||||
drawable_class->draw_lines = gdk_offscreen_window_draw_lines;
|
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_polygon = gdk_pixmap_draw_polygon;
|
||||||
drawable_class->draw_text = gdk_pixmap_draw_text;
|
drawable_class->draw_text = gdk_pixmap_draw_text;
|
||||||
drawable_class->draw_text_wc = gdk_pixmap_draw_text_wc;
|
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_points = gdk_pixmap_draw_points;
|
||||||
drawable_class->draw_segments = gdk_pixmap_draw_segments;
|
drawable_class->draw_segments = gdk_pixmap_draw_segments;
|
||||||
drawable_class->draw_lines = gdk_pixmap_draw_lines;
|
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_polygon = gdk_window_draw_polygon;
|
||||||
drawable_class->draw_text = gdk_window_draw_text;
|
drawable_class->draw_text = gdk_window_draw_text;
|
||||||
drawable_class->draw_text_wc = gdk_window_draw_text_wc;
|
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_points = gdk_window_draw_points;
|
||||||
drawable_class->draw_segments = gdk_window_draw_segments;
|
drawable_class->draw_segments = gdk_window_draw_segments;
|
||||||
drawable_class->draw_lines = gdk_window_draw_lines;
|
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_polygon = gdk_quartz_draw_polygon;
|
||||||
drawable_class->draw_text = gdk_quartz_draw_text;
|
drawable_class->draw_text = gdk_quartz_draw_text;
|
||||||
drawable_class->draw_text_wc = gdk_quartz_draw_text_wc;
|
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_points = gdk_quartz_draw_points;
|
||||||
drawable_class->draw_segments = gdk_quartz_draw_segments;
|
drawable_class->draw_segments = gdk_quartz_draw_segments;
|
||||||
drawable_class->draw_lines = gdk_quartz_draw_lines;
|
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_polygon = gdk_win32_draw_polygon;
|
||||||
drawable_class->draw_text = gdk_win32_draw_text;
|
drawable_class->draw_text = gdk_win32_draw_text;
|
||||||
drawable_class->draw_text_wc = gdk_win32_draw_text_wc;
|
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_points = gdk_win32_draw_points;
|
||||||
drawable_class->draw_segments = gdk_win32_draw_segments;
|
drawable_class->draw_segments = gdk_win32_draw_segments;
|
||||||
drawable_class->draw_lines = gdk_win32_draw_lines;
|
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_polygon = gdk_x11_draw_polygon;
|
||||||
drawable_class->draw_text = gdk_x11_draw_text;
|
drawable_class->draw_text = gdk_x11_draw_text;
|
||||||
drawable_class->draw_text_wc = gdk_x11_draw_text_wc;
|
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_points = gdk_x11_draw_points;
|
||||||
drawable_class->draw_segments = gdk_x11_draw_segments;
|
drawable_class->draw_segments = gdk_x11_draw_segments;
|
||||||
drawable_class->draw_lines = gdk_x11_draw_lines;
|
drawable_class->draw_lines = gdk_x11_draw_lines;
|
||||||
|
Reference in New Issue
Block a user