summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2021-01-08 15:26:25 +1300
committerRobert Ancell <robert.ancell@canonical.com>2021-01-08 15:28:47 +1300
commitc86d1c09c8e49b6bd0480f6bdb9bb01be85d338a (patch)
treed778e43d9b4aba6d87fbef0c7c10d7a19288f4d2
parentff6aabb511949ac01b3699fd688d67d9895e89f9 (diff)
downloadgnome-control-center-c86d1c09c8e49b6bd0480f6bdb9bb01be85d338a.tar.gz
user-accounts: Simplify render_user_icon function
-rw-r--r--panels/user-accounts/cc-user-image.c46
1 files changed, 23 insertions, 23 deletions
diff --git a/panels/user-accounts/cc-user-image.c b/panels/user-accounts/cc-user-image.c
index fe535edee..8c6d16d93 100644
--- a/panels/user-accounts/cc-user-image.c
+++ b/panels/user-accounts/cc-user-image.c
@@ -33,43 +33,43 @@ struct _CcUserImage {
G_DEFINE_TYPE (CcUserImage, cc_user_image, GTK_TYPE_IMAGE)
static cairo_surface_t *
+render_rounded (GdkPixbuf *source, gint scale)
+{
+ g_autoptr(GdkPixbuf) rounded_pixbuf = NULL;
+ rounded_pixbuf = round_image (source);
+ return gdk_cairo_surface_create_from_pixbuf (rounded_pixbuf, scale, NULL);
+}
+
+static cairo_surface_t *
render_user_icon (ActUser *user,
gint icon_size,
gint scale)
{
- g_autoptr(GdkPixbuf) source_pixbuf = NULL;
- g_autoptr(GdkPixbuf) avatar_pixbuf = NULL;
- g_autoptr(GdkPixbuf) pixbuf = NULL;
- const gchar *icon_file;
- cairo_surface_t *surface = NULL;
+ const gchar *icon_file;
+ g_autoptr(GdkPixbuf) default_pixbuf = NULL;
g_return_val_if_fail (ACT_IS_USER (user), NULL);
g_return_val_if_fail (icon_size > 12, NULL);
icon_file = act_user_get_icon_file (user);
if (icon_file) {
- source_pixbuf = gdk_pixbuf_new_from_file_at_size (icon_file,
- icon_size * scale,
- icon_size * scale,
- NULL);
- if (source_pixbuf)
- pixbuf = round_image (source_pixbuf);
+ g_autoptr(GdkPixbuf) icon_pixbuf = NULL;
+
+ icon_pixbuf = gdk_pixbuf_new_from_file_at_size (icon_file,
+ icon_size * scale,
+ icon_size * scale,
+ NULL);
+ if (icon_pixbuf) {
+ return render_rounded (icon_pixbuf, scale);
+ }
}
- if (pixbuf != NULL) {
- goto out;
- }
-
- avatar_pixbuf = generate_default_avatar (user, icon_size * scale);
- if (avatar_pixbuf)
- pixbuf = round_image (avatar_pixbuf);
- out:
-
- if (pixbuf != NULL) {
- surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, NULL);
+ default_pixbuf = generate_default_avatar (user, icon_size * scale);
+ if (default_pixbuf) {
+ return render_rounded (default_pixbuf, scale);
}
- return surface;
+ return NULL;
}
static void