diff --git a/gtk/gtkrendernodepaintable.c b/gtk/gtkrendernodepaintable.c index a777187247..bbe9cc5b13 100644 --- a/gtk/gtkrendernodepaintable.c +++ b/gtk/gtkrendernodepaintable.c @@ -87,6 +87,17 @@ gtk_render_node_paintable_paintable_get_intrinsic_height (GdkPaintable *paintabl return ceilf (self->bounds.size.height); } +static double +gtk_render_node_paintable_paintable_get_intrinsic_aspect_ratio (GdkPaintable *paintable) +{ + GtkRenderNodePaintable *self = GTK_RENDER_NODE_PAINTABLE (paintable); + + if (self->bounds.size.height != 0) + return self->bounds.size.width / self->bounds.size.height; + + return 0; +} + static void gtk_render_node_paintable_paintable_init (GdkPaintableInterface *iface) { @@ -94,6 +105,7 @@ gtk_render_node_paintable_paintable_init (GdkPaintableInterface *iface) iface->get_flags = gtk_render_node_paintable_paintable_get_flags; iface->get_intrinsic_width = gtk_render_node_paintable_paintable_get_intrinsic_width; iface->get_intrinsic_height = gtk_render_node_paintable_paintable_get_intrinsic_height; + iface->get_intrinsic_aspect_ratio = gtk_render_node_paintable_paintable_get_intrinsic_aspect_ratio; } G_DEFINE_TYPE_EXTENDED (GtkRenderNodePaintable, gtk_render_node_paintable, G_TYPE_OBJECT, 0,