diff options
author | Matthias Clasen <mclasen@redhat.com> | 2015-04-08 14:13:20 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2015-04-08 14:13:20 -0400 |
commit | c6a77d0f6878e951929e22b3a196368d475ebc2b (patch) | |
tree | 67f8053a2a75d3b295f58b2b7e0ddc0579c1fe38 /gtk/gtkimage.c | |
parent | 65b7fc91bd60ee74b5b947326f0a39b6bae807de (diff) | |
download | gtk+-c6a77d0f6878e951929e22b3a196368d475ebc2b.tar.gz |
Revert "image: Optimize non-resize changes"
This reverts commit bae97a4c6bcb1c82d4a5f296c3d428173e31c6e4.
We're still seeing regressions from there, see
http://bugzilla.redhat.com/show_bug.cgi?id=1208183
Diffstat (limited to 'gtk/gtkimage.c')
-rw-r--r-- | gtk/gtkimage.c | 107 |
1 files changed, 17 insertions, 90 deletions
diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c index d501aef7da..5763f06915 100644 --- a/gtk/gtkimage.c +++ b/gtk/gtkimage.c @@ -155,9 +155,6 @@ static void gtk_image_size_allocate (GtkWidget *widget, static void gtk_image_unmap (GtkWidget *widget); static void gtk_image_realize (GtkWidget *widget); static void gtk_image_unrealize (GtkWidget *widget); -static void gtk_image_get_preferred_size (GtkImage *image, - gint *width_out, - gint *height_out); static void gtk_image_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural); @@ -937,8 +934,8 @@ gtk_image_set_from_file (GtkImage *image, priv = image->priv; g_object_freeze_notify (G_OBJECT (image)); - - gtk_image_reset (image); + + gtk_image_clear (image); if (filename == NULL) { @@ -951,7 +948,9 @@ gtk_image_set_from_file (GtkImage *image, if (anim == NULL) { - gtk_image_set_from_icon_name (image, "image-missing", DEFAULT_ICON_SIZE); + gtk_image_set_from_icon_name (image, + "image-missing", + DEFAULT_ICON_SIZE); g_object_thaw_notify (G_OBJECT (image)); return; } @@ -972,21 +971,7 @@ gtk_image_set_from_file (GtkImage *image, g_object_unref (anim); priv->filename = g_strdup (filename); - - if (gtk_widget_get_visible (GTK_WIDGET (image))) - { - gint width, height; - - gtk_image_get_preferred_size (image, &width, &height); - if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) || - height != gtk_widget_get_allocated_height (GTK_WIDGET (image))) - gtk_widget_queue_resize (GTK_WIDGET (image)); - else - gtk_widget_queue_draw (GTK_WIDGET (image)); - } - - g_object_notify (G_OBJECT (image), "file"); - + g_object_thaw_notify (G_OBJECT (image)); } @@ -1023,7 +1008,9 @@ gtk_image_set_from_resource (GtkImage *image, if (animation == NULL) { - gtk_image_set_from_icon_name (image, "image-missing", DEFAULT_ICON_SIZE); + gtk_image_set_from_icon_name (image, + "image-missing", + DEFAULT_ICON_SIZE); g_object_thaw_notify (G_OBJECT (image)); return; } @@ -1059,29 +1046,18 @@ gtk_image_set_from_pixbuf (GtkImage *image, GtkImagePrivate *priv; g_return_if_fail (GTK_IS_IMAGE (image)); - g_return_if_fail (pixbuf == NULL || GDK_IS_PIXBUF (pixbuf)); + g_return_if_fail (pixbuf == NULL || + GDK_IS_PIXBUF (pixbuf)); priv = image->priv; g_object_freeze_notify (G_OBJECT (image)); - - gtk_image_reset (image); + + gtk_image_clear (image); if (pixbuf != NULL) _gtk_icon_helper_set_pixbuf (priv->icon_helper, pixbuf); - if (gtk_widget_get_visible (GTK_WIDGET (image))) - { - gint width, height; - - gtk_image_get_preferred_size (image, &width, &height); - if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) || - height != gtk_widget_get_allocated_height (GTK_WIDGET (image))) - gtk_widget_queue_resize (GTK_WIDGET (image)); - else - gtk_widget_queue_draw (GTK_WIDGET (image)); - } - g_object_notify (G_OBJECT (image), "pixbuf"); g_object_thaw_notify (G_OBJECT (image)); @@ -1195,7 +1171,7 @@ gtk_image_set_from_animation (GtkImage *image, if (animation) g_object_ref (animation); - gtk_image_reset (image); + gtk_image_clear (image); if (animation != NULL) { @@ -1203,18 +1179,6 @@ gtk_image_set_from_animation (GtkImage *image, g_object_unref (animation); } - if (gtk_widget_get_visible (GTK_WIDGET (image))) - { - gint width, height; - - gtk_image_get_preferred_size (image, &width, &height); - if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) || - height != gtk_widget_get_allocated_height (GTK_WIDGET (image))) - gtk_widget_queue_resize (GTK_WIDGET (image)); - else - gtk_widget_queue_draw (GTK_WIDGET (image)); - } - g_object_notify (G_OBJECT (image), "pixbuf-animation"); g_object_thaw_notify (G_OBJECT (image)); @@ -1245,8 +1209,7 @@ gtk_image_set_from_icon_name (GtkImage *image, g_object_freeze_notify (G_OBJECT (image)); new_name = g_strdup (icon_name); - - gtk_image_reset (image); + gtk_image_clear (image); if (new_name) { @@ -1254,18 +1217,6 @@ gtk_image_set_from_icon_name (GtkImage *image, g_free (new_name); } - if (gtk_widget_get_visible (GTK_WIDGET (image))) - { - gint width, height; - - gtk_image_get_preferred_size (image, &width, &height); - if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) || - height != gtk_widget_get_allocated_height (GTK_WIDGET (image))) - gtk_widget_queue_resize (GTK_WIDGET (image)); - else - gtk_widget_queue_draw (GTK_WIDGET (image)); - } - g_object_notify (G_OBJECT (image), "icon-name"); g_object_notify (G_OBJECT (image), "icon-size"); @@ -1298,7 +1249,7 @@ gtk_image_set_from_gicon (GtkImage *image, if (icon) g_object_ref (icon); - gtk_image_reset (image); + gtk_image_clear (image); if (icon) { @@ -1306,18 +1257,6 @@ gtk_image_set_from_gicon (GtkImage *image, g_object_unref (icon); } - if (gtk_widget_get_visible (GTK_WIDGET (image))) - { - gint width, height; - - gtk_image_get_preferred_size (image, &width, &height); - if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) || - height != gtk_widget_get_allocated_height (GTK_WIDGET (image))) - gtk_widget_queue_resize (GTK_WIDGET (image)); - else - gtk_widget_queue_draw (GTK_WIDGET (image)); - } - g_object_notify (G_OBJECT (image), "gicon"); g_object_notify (G_OBJECT (image), "icon-size"); @@ -1348,7 +1287,7 @@ gtk_image_set_from_surface (GtkImage *image, if (surface) cairo_surface_reference (surface); - gtk_image_reset (image); + gtk_image_clear (image); if (surface) { @@ -1356,18 +1295,6 @@ gtk_image_set_from_surface (GtkImage *image, cairo_surface_destroy (surface); } - if (gtk_widget_get_visible (GTK_WIDGET (image))) - { - gint width, height; - - gtk_image_get_preferred_size (image, &width, &height); - if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) || - height != gtk_widget_get_allocated_height (GTK_WIDGET (image))) - gtk_widget_queue_resize (GTK_WIDGET (image)); - else - gtk_widget_queue_draw (GTK_WIDGET (image)); - } - g_object_notify (G_OBJECT (image), "surface"); g_object_thaw_notify (G_OBJECT (image)); |