mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-17 23:50:16 +00:00
image: Actually report a request mode
This makes height-for-width actually work for GtkImage. I'm kinda ashamed I didn't notice it not working before.
This commit is contained in:
parent
7a4e76ae15
commit
0ea8395c03
@ -470,6 +470,22 @@ gtk_icon_helper_new (GtkCssNode *css_node,
|
||||
return self;
|
||||
}
|
||||
|
||||
GtkSizeRequestMode
|
||||
gtk_icon_helper_get_request_mode (GtkIconHelper *self)
|
||||
{
|
||||
switch (gtk_image_definition_get_storage_type (self->def))
|
||||
{
|
||||
case GTK_IMAGE_PAINTABLE:
|
||||
return GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH;
|
||||
|
||||
case GTK_IMAGE_ICON_NAME:
|
||||
case GTK_IMAGE_GICON:
|
||||
case GTK_IMAGE_EMPTY:
|
||||
default:
|
||||
return GTK_SIZE_REQUEST_CONSTANT_SIZE;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gtk_icon_helper_measure (GtkIconHelper *self,
|
||||
GtkOrientation orientation,
|
||||
|
@ -64,6 +64,7 @@ GdkPaintable *_gtk_icon_helper_peek_paintable (GtkIconHelper *self);
|
||||
GtkImageDefinition *gtk_icon_helper_get_definition (GtkIconHelper *self);
|
||||
const gchar *_gtk_icon_helper_get_icon_name (GtkIconHelper *self);
|
||||
|
||||
GtkSizeRequestMode gtk_icon_helper_get_request_mode (GtkIconHelper *self);
|
||||
void gtk_icon_helper_measure (GtkIconHelper *self,
|
||||
GtkOrientation orientation,
|
||||
int for_size,
|
||||
|
@ -136,6 +136,15 @@ static GParamSpec *image_props[NUM_PROPERTIES] = { NULL, };
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (GtkImage, gtk_image, GTK_TYPE_WIDGET)
|
||||
|
||||
static GtkSizeRequestMode
|
||||
gtk_image_get_request_mode (GtkWidget *widget)
|
||||
{
|
||||
GtkImage *image = GTK_IMAGE (widget);
|
||||
GtkImagePrivate *priv = gtk_image_get_instance_private (image);
|
||||
|
||||
return gtk_icon_helper_get_request_mode (priv->icon_helper);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_image_class_init (GtkImageClass *class)
|
||||
{
|
||||
@ -150,6 +159,7 @@ gtk_image_class_init (GtkImageClass *class)
|
||||
|
||||
widget_class = GTK_WIDGET_CLASS (class);
|
||||
widget_class->snapshot = gtk_image_snapshot;
|
||||
widget_class->get_request_mode = gtk_image_get_request_mode;
|
||||
widget_class->measure = gtk_image_measure;
|
||||
widget_class->unrealize = gtk_image_unrealize;
|
||||
widget_class->style_updated = gtk_image_style_updated;
|
||||
|
Loading…
Reference in New Issue
Block a user