diff options
author | Benjamin Berg <bberg@redhat.com> | 2020-10-05 14:56:39 +0200 |
---|---|---|
committer | Benjamin Berg <bberg@redhat.com> | 2020-10-05 14:57:46 +0200 |
commit | df29a26c1e9c59ad265ebdac4b6daecba4b7aaea (patch) | |
tree | 4a9fc4122d91f0c472c2d56c1d15bdc8f41d0ca0 | |
parent | febfe1d63d4fe9d2dc01ff307b3b7646c005aeb0 (diff) | |
download | gnome-control-center-df29a26c1e9c59ad265ebdac4b6daecba4b7aaea.tar.gz |
avatar-chooser: Return a proper widget if images cannot be loadedbenzea/fix-criticals-missing-image-loader
GTK assumes that a widget will be created for a flow box item. So always
return one instead of falling back to returning NULL. This can primarily
happen if an image loader is missing.
-rw-r--r-- | panels/user-accounts/cc-avatar-chooser.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/panels/user-accounts/cc-avatar-chooser.c b/panels/user-accounts/cc-avatar-chooser.c index d0d4e1bbe..c3ea44705 100644 --- a/panels/user-accounts/cc-avatar-chooser.c +++ b/panels/user-accounts/cc-avatar-chooser.c @@ -366,8 +366,16 @@ create_face_widget (gpointer item, AVATAR_CHOOSER_PIXEL_SIZE, AVATAR_CHOOSER_PIXEL_SIZE, NULL); - if (source_pixbuf == NULL) - return NULL; + if (source_pixbuf == NULL) { + image = gtk_image_new_from_icon_name ("image-missing", GTK_ICON_SIZE_DIALOG); + gtk_image_set_pixel_size (GTK_IMAGE (image), AVATAR_CHOOSER_PIXEL_SIZE); + gtk_widget_show (image); + + g_object_set_data_full (G_OBJECT (image), + "filename", g_steal_pointer (&image_path), g_free); + + return image; + } pixbuf = round_image (source_pixbuf); image = gtk_image_new_from_pixbuf (pixbuf); |